1478b8fecSSam Ravnborg/* 2478b8fecSSam Ravnborg * Sparc64 optimized strncmp code. 3478b8fecSSam Ravnborg * 4478b8fecSSam Ravnborg * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) 5478b8fecSSam Ravnborg */ 6478b8fecSSam Ravnborg 7478b8fecSSam Ravnborg#include <asm/asi.h> 8478b8fecSSam Ravnborg 9478b8fecSSam Ravnborg .text 10478b8fecSSam Ravnborg .align 32 11478b8fecSSam Ravnborg .globl strncmp 12478b8fecSSam Ravnborg .type strncmp,#function 13478b8fecSSam Ravnborgstrncmp: 14478b8fecSSam Ravnborg brlez,pn %o2, 3f 15478b8fecSSam Ravnborg lduba [%o0] (ASI_PNF), %o3 16478b8fecSSam Ravnborg1: 17478b8fecSSam Ravnborg add %o0, 1, %o0 18478b8fecSSam Ravnborg ldub [%o1], %o4 19478b8fecSSam Ravnborg brz,pn %o3, 2f 20478b8fecSSam Ravnborg add %o1, 1, %o1 21478b8fecSSam Ravnborg cmp %o3, %o4 22478b8fecSSam Ravnborg bne,pn %icc, 2f 23478b8fecSSam Ravnborg subcc %o2, 1, %o2 24478b8fecSSam Ravnborg bne,a,pt %xcc, 1b 25478b8fecSSam Ravnborg ldub [%o0], %o3 26478b8fecSSam Ravnborg2: 27478b8fecSSam Ravnborg retl 28478b8fecSSam Ravnborg sub %o3, %o4, %o0 29478b8fecSSam Ravnborg3: 30478b8fecSSam Ravnborg retl 31478b8fecSSam Ravnborg clr %o0 32478b8fecSSam Ravnborg .size strncmp, .-strncmp 33