Add test for dbt/rtd instructions
authorAndrew Cagney <cagney@redhat.com>
Fri, 27 Jun 1997 08:33:16 +0000 (08:33 +0000)
committerAndrew Cagney <cagney@redhat.com>
Fri, 27 Jun 1997 08:33:16 +0000 (08:33 +0000)
sim/testsuite/d30v-elf/os-dbt.S [new file with mode: 0644]

diff --git a/sim/testsuite/d30v-elf/os-dbt.S b/sim/testsuite/d30v-elf/os-dbt.S
new file mode 100644 (file)
index 0000000..3468867
--- /dev/null
@@ -0,0 +1,38 @@
+       .globl _start
+       #
+       # NOTE: Registers r10-r11 are reserved for the interrupt handler
+       #       while the others can be used by the main loop/start code.
+
+_start:                
+       # patch the DBT handler
+       add r1, r0, handler
+       ldw r2, @(r1, 0)
+       ldw r3, @(r1, 4)
+       # DBT vector address
+       add r1, r0, 0xfffff120
+       stw r2, @(r1, 0)
+       stw r3, @(r1, 4)
+
+       # try out the breakpoint/return
+       add r2, r0, 47
+       #dbt
+       nop
+       .long 0x00b00000
+       nop
+
+       # exit with what ever the breakpoint hander set r2 to.
+       nop
+       .long 0x0e000004
+       nop
+
+handler:
+       jmp real_handler
+       
+       # The Breakpoint handler sets r2 to 0 if PSW was set correctly.
+real_handler:
+       mvfsys r2, cr0
+       sub r2, r0, 0x08000000
+       #rtd
+       nop
+       .long 0x00a00000
+       nop