binutils-gdb/sim/testsuite/d30v-elf/os-dbt.S

39 lines
672 B
ArmAsm

.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