trp.s 385 B

1234567891011121314151617181920212223242526272829
  1. .define .trp
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. .sect .text
  7. .sect .text
  8. .trp:
  9. save [r0, r1]
  10. movd 12(sp), r0 !error number
  11. movd r0,tos
  12. cmpd r0, 16
  13. bge 1f
  14. tbitd r0, @.ignmask
  15. bfs 3f !do not trap
  16. 1: !do trap
  17. movd @.trpreg, r1
  18. cmpqd 0, r1
  19. beq 2f
  20. movqd 0, @.trpreg
  21. jsr r1
  22. 3:
  23. adjspd -4
  24. restore [r0, r1]
  25. ret 4
  26. 2:
  27. jump @.stop !no trapprocedure supplied