csb4.s 537 B

12345678910111213141516171819202122232425262728293031
  1. #include "em_abs.h"
  2. .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
  3. .define .csb4
  4. ! $Id$
  5. .csb4:
  6. movl (sp)+,r0 ! descriptor address
  7. movl (sp)+,r1 ! index
  8. pushl r4 ! Save r4
  9. movl (r0)+,r4 ! default
  10. movl (r0)+,r2 ! number of cases
  11. I1:
  12. decl r2
  13. blss I2
  14. movl (r0)+,r3
  15. cmpl r1,r3
  16. beql Ifound
  17. tstl (r0)+ ! useless address
  18. br I1
  19. Ifound:
  20. movl (r0)+,r4
  21. I2:
  22. movl r4,r0
  23. beql a3
  24. movl (sp)+,r4 ! Restore r4
  25. jmp (r0)
  26. a3:
  27. pushl $ECASE
  28. jmp .fat