1*4882a593Smuzhiyun/* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun/* Sparc optimized memcmp code. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) 5*4882a593Smuzhiyun * Copyright (C) 2000, 2008 David S. Miller (davem@davemloft.net) 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#include <linux/linkage.h> 9*4882a593Smuzhiyun#include <asm/asm.h> 10*4882a593Smuzhiyun#include <asm/export.h> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun .text 13*4882a593SmuzhiyunENTRY(memcmp) 14*4882a593Smuzhiyun cmp %o2, 0 15*4882a593Smuzhiyun1: BRANCH32(be, pn, 2f) 16*4882a593Smuzhiyun nop 17*4882a593Smuzhiyun ldub [%o0], %g7 18*4882a593Smuzhiyun ldub [%o1], %g3 19*4882a593Smuzhiyun sub %o2, 1, %o2 20*4882a593Smuzhiyun add %o0, 1, %o0 21*4882a593Smuzhiyun add %o1, 1, %o1 22*4882a593Smuzhiyun subcc %g7, %g3, %g3 23*4882a593Smuzhiyun BRANCH32(be, pt, 1b) 24*4882a593Smuzhiyun cmp %o2, 0 25*4882a593Smuzhiyun retl 26*4882a593Smuzhiyun mov %g3, %o0 27*4882a593Smuzhiyun2: retl 28*4882a593Smuzhiyun mov 0, %o0 29*4882a593SmuzhiyunENDPROC(memcmp) 30*4882a593SmuzhiyunEXPORT_SYMBOL(memcmp) 31