.global csb
ECASE=20

csb:
		! case descriptor in %o0
		! index in %o1
	ld	[%o0], %o2	! default jump address
	ld	[%o0+4], %o3	! # entries
	inc	8, %o0
	tst	%o3
	be	3f
	nop
	dec	%o3
	set	0xffff, %o4
	and	%o3, %o4, %o5
	sll	%o5, 3, %o3
1:
	ld	[%o0+%o3], %o4
	cmp	%o4, %o1
	be	2f
	nop
	deccc	8, %o3
	bge	1b
	nop
	b	3f
	nop
2:	
	inc	4, %o3
	ld	[%o0+%o3], %o2
3:
	tst	%o2
	be	4f
	nop
	jmp	%o2
	nop
4:
	set	ECASE, %o0
	set	trp, %g1
	jmp	%g1
	nop