mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 18:39:34 +08:00
Add test for dbt/rtd instructions
This commit is contained in:
38
sim/testsuite/d30v-elf/os-dbt.S
Normal file
38
sim/testsuite/d30v-elf/os-dbt.S
Normal file
@ -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
|
Reference in New Issue
Block a user