1/*
2 * Copyright (c) 1988 Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
6 * provided that the above copyright notice and this paragraph are
7 * duplicated in all such forms and that any documentation,
8 * advertising materials, and other materials related to such
9 * distribution and use acknowledge that the software was developed
10 * by the University of California, Berkeley.  The name of the
11 * University may not be used to endorse or promote products derived
12 * from this software without specific prior written permission.
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16 *
17 *	@(#)vaxbsubs.s	4.1 (Berkeley) 12/04/88
18 */
19
20/* This is taken from bcmp.s from 4.2.
21 * The output of bunequal is the offset of the byte which didn't match;
22 * if all the bytes match, then we return n.
23 *
24 * BUGNOTE:  This has no chance of working for lengths greater than 64K.
25 *		(so, if you use this somewhere else, you may need to
26 *		fix it...)
27 */
28
29/* bunequal(s1, s2, n) */
30
31#include "defs.h"
32
33ENTRY(bunequal)
34	movl	4(ap),r1
35	movl	8(ap),r3
36	movl	12(ap),r4
371:
38	movzwl	$65535,r0
39	cmpl	r4,r0
40	jleq	2f
41	subl2	r0,r4
42	cmpc3	r0,(r1),(r3)
43	jeql	1b
44	addl2	r4,r0
45	/* changes... */
46	subl3	r0,12(ap),r0
47	/* end of changes for bunequal... */
48	ret
492:
50	cmpc3	r4,(r1),(r3)
51	/* changes... */
52	subl3	r0,12(ap),r0
53	/* end of changes for bunequal... */
54	ret
55
56
57
58
59/* brand new code, using the above as base... */
60/* bskip(s1, n, b) : finds the first occurrence of any byte != 'b' in the 'n'
61 * bytes beginning at 's1'.
62 *
63 * BUGNOTE:  This has no chance of working for lengths greater than 64K.
64 *		(so, if you use this somewhere else, you may need to
65 *		fix it...)
66 */
67
68ENTRY(bskip)
69	movl	4(ap),r1
70	movl	8(ap),r3
71	movl	12(ap),r4
721:
73	movzwl	$65535,r0
74	cmpl	r3,r0
75	jleq	2f
76	subl2	r0,r3
77	skpc	r4,r0,(r1)
78	jeql	1b
79	addl2	r3,r0
80	subl3	r0,8(ap),r0
81	ret
822:
83	skpc	r4,r3,(r1)
84	subl3	r0,8(ap),r0
85	ret
86