1b00dc8376465ee5f8dd49b95924e31b4c2404ab0Adrian Bunk/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Sparc64 optimized strncmp code. 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/asi.h> 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds .text 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds .align 32 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds .globl strncmp 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds .type strncmp,#function 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstrncmp: 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds brlez,pn %o2, 3f 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds lduba [%o0] (ASI_PNF), %o3 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds1: 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds add %o0, 1, %o0 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ldub [%o1], %o4 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds brz,pn %o3, 2f 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds add %o1, 1, %o1 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds cmp %o3, %o4 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds bne,pn %icc, 2f 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds subcc %o2, 1, %o2 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds bne,a,pt %xcc, 1b 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ldub [%o0], %o3 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds2: 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds retl 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds sub %o3, %o4, %o0 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds3: 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds retl 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds clr %o0 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds .size strncmp, .-strncmp 33