1*47942Sbostic/*-
2*47942Sbostic * Copyright (c) 1991 The Regents of the University of California.
3*47942Sbostic * All rights reserved.
4*47942Sbostic *
5*47942Sbostic * This code is derived from software contributed to Berkeley by
6*47942Sbostic * Computer Consoles Inc.
7*47942Sbostic *
8*47942Sbostic * %sccs.include.proprietary.c%
9*47942Sbostic */
1029958Smckusick
11*47942Sbostic#ifndef lint
12*47942Sbostic	.asciz "@(#)rindex_s.s	5.2 (Berkeley) 04/12/91"
13*47942Sbostic#endif /* not lint */
14*47942Sbostic
1529958Smckusick.data
1629958Smckusick.text
1729958SmckusickLL0:.align	1
1829958Smckusick.globl	_rindex_
1929958Smckusick.set MASK__,0x1c0c
2029958Smckusick.data
2129958Smckusick.text
2229958Smckusick_rindex_: .word	MASK__
2329958Smckusick
2429958Smckusick	movl	16(fp),r12	/* sublen */
2529958Smckusick	tstl	r12		/* if sublen == 0 */
2629958Smckusick	jeql	out0		/*   return(0L) */
2729958Smckusick
2829958Smckusick	movl 	4(fp), r11	/* str */
2929958Smckusick	movl	8(fp), r10	/* substr */
3029958Smckusick	addl3	r11, 12(fp), r3	/* p = str + strlen */
3129958Smckusick	subl2	r12, r3		/* p -= sublen */
3229958Smckusickloop:
3329958Smckusick	cmpl	r3, r11		/* while (p >= str) */
3429958Smckusick	jlss	out0		/* not found - return(0L) */
3529958Smckusick	movl	r3, r0		/* current p (in str) */
3629958Smckusick	movl	r10, r1		/* substr */
3729958Smckusick	movl 	r12, r2		/* sublen */
3829958Smckusick	cmps3			/* if strigs equal */
3929958Smckusick	jeql	out		/* return index */
4029958Smckusick
4129958Smckusick	decl	r3		/* p-- */
4229958Smckusick	jbr	loop
4329958Smckusick
4429958Smckusickout:
4529958Smckusick	incl	r3		/* index = ++p - str */
4629958Smckusick	subl3	r11, r3, r0
4729958Smckusick	ret
4829958Smckusick
4929958Smckusickout0:
5029958Smckusick	clrl	r0
5129958Smckusick	ret
5229958Smckusick
53