xref: /inferno-os/libkern/strncmp-power.s (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.ForsythTEXT	strncmp(SB), $0
2*37da2899SCharles.Forsyth#define	BDNZ	BC	16,0,
3*37da2899SCharles.Forsyth
4*37da2899SCharles.Forsyth	MOVW	s2+4(FP), R4
5*37da2899SCharles.Forsyth	MOVW	n+8(FP), R7
6*37da2899SCharles.Forsyth
7*37da2899SCharles.Forsyth	CMP	R7, $0
8*37da2899SCharles.Forsyth	MOVW	R7, CTR
9*37da2899SCharles.Forsyth	BLE	eq
10*37da2899SCharles.Forsyth
11*37da2899SCharles.Forsyth	SUB	$1, R3
12*37da2899SCharles.Forsyth	SUB	$1, R4
13*37da2899SCharles.Forsythl1:
14*37da2899SCharles.Forsyth	MOVBZU	1(R3), R5
15*37da2899SCharles.Forsyth	MOVBZU	1(R4), R6
16*37da2899SCharles.Forsyth	CMP	R5, R6
17*37da2899SCharles.Forsyth	BNE	ne
18*37da2899SCharles.Forsyth	CMP	R5, $0
19*37da2899SCharles.Forsyth	BEQ	eq
20*37da2899SCharles.Forsyth	BDNZ	l1
21*37da2899SCharles.Forsytheq:
22*37da2899SCharles.Forsyth	MOVW	$0, R3
23*37da2899SCharles.Forsyth	RETURN
24*37da2899SCharles.Forsythne:
25*37da2899SCharles.Forsyth	MOVW	$1, R3
26*37da2899SCharles.Forsyth	BGT	ret
27*37da2899SCharles.Forsyth	MOVW	$-1, R3
28*37da2899SCharles.Forsythret:
29*37da2899SCharles.Forsyth	RETURN
30