18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* Sparc optimized memcmp code. 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) 58c2ecf20Sopenharmony_ci * Copyright (C) 2000, 2008 David S. Miller (davem@davemloft.net) 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/linkage.h> 98c2ecf20Sopenharmony_ci#include <asm/asm.h> 108c2ecf20Sopenharmony_ci#include <asm/export.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci .text 138c2ecf20Sopenharmony_ciENTRY(memcmp) 148c2ecf20Sopenharmony_ci cmp %o2, 0 158c2ecf20Sopenharmony_ci1: BRANCH32(be, pn, 2f) 168c2ecf20Sopenharmony_ci nop 178c2ecf20Sopenharmony_ci ldub [%o0], %g7 188c2ecf20Sopenharmony_ci ldub [%o1], %g3 198c2ecf20Sopenharmony_ci sub %o2, 1, %o2 208c2ecf20Sopenharmony_ci add %o0, 1, %o0 218c2ecf20Sopenharmony_ci add %o1, 1, %o1 228c2ecf20Sopenharmony_ci subcc %g7, %g3, %g3 238c2ecf20Sopenharmony_ci BRANCH32(be, pt, 1b) 248c2ecf20Sopenharmony_ci cmp %o2, 0 258c2ecf20Sopenharmony_ci retl 268c2ecf20Sopenharmony_ci mov %g3, %o0 278c2ecf20Sopenharmony_ci2: retl 288c2ecf20Sopenharmony_ci mov 0, %o0 298c2ecf20Sopenharmony_ciENDPROC(memcmp) 308c2ecf20Sopenharmony_ciEXPORT_SYMBOL(memcmp) 31