30 lines
478 B
ArmAsm
30 lines
478 B
ArmAsm
|
# $Header$
|
||
|
#include "em_abs.h"
|
||
|
|
||
|
.globl .csb4
|
||
|
|
||
|
.csb4:
|
||
|
movl (sp)+,r0 # descriptor address
|
||
|
movl (sp)+,r1 # index
|
||
|
pushl r4 # Save r4
|
||
|
movl (r0)+,r4 # default
|
||
|
movl (r0)+,r2 # number of cases
|
||
|
L1:
|
||
|
decl r2
|
||
|
blss L2
|
||
|
movl (r0)+,r3
|
||
|
cmpl r1,r3
|
||
|
beql Lfound
|
||
|
tstl (r0)+ # useless address
|
||
|
brb L1
|
||
|
Lfound:
|
||
|
movl (r0)+,r4
|
||
|
L2:
|
||
|
movl r4,r0
|
||
|
beql a3
|
||
|
movl (sp)+,r4 # Restore r4
|
||
|
jmp (r0)
|
||
|
a3:
|
||
|
pushl $ECASE
|
||
|
jmp .fat
|