hw-trap.ms 473 B

1234567891011121314151617181920212223242526272829303132
  1. # mach(): m32r m32rx
  2. # sim: --environment virtual
  3. # output(): pass\n
  4. .include "testutils.inc"
  5. start
  6. ; construct bra trap2_handler in trap 2 slot
  7. ld24 r0,#bra_insn
  8. ld r0,@r0
  9. ld24 r1,#trap2_handler
  10. addi r1,#-0x48 ; pc relative address from trap 2 slot to handler
  11. srai r1,#2
  12. or r0,r1
  13. ld24 r2,#0x48 ; address of trap 2 slot
  14. st r0,@r2
  15. ; perform trap
  16. ldi r4,#0
  17. trap #2
  18. test_h_gr r4,42
  19. pass
  20. ; trap 2 handler
  21. trap2_handler:
  22. ldi r4,#42
  23. rte
  24. bra_insn:
  25. bra.l 0