2003-12-13 02:01:08 +01:00
|
|
|
comment "subroutine prologue"
|
|
|
|
.macro gdbasm_enter
|
|
|
|
addi sp,#-16,sp
|
|
|
|
sti fp, @(sp,0)
|
|
|
|
mov sp, fp
|
|
|
|
movsg lr, gr5
|
|
|
|
sti gr5, @(fp,8)
|
|
|
|
.endm
|
|
|
|
|
|
|
|
comment "subroutine epilogue"
|
|
|
|
.macro gdbasm_leave
|
|
|
|
ldi @(fp,8), gr5
|
|
|
|
ld @(fp,gr0), fp
|
|
|
|
addi sp,#16,sp
|
|
|
|
jmpl @(gr5,gr0)
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro gdbasm_call subr
|
|
|
|
call \subr
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro gdbasm_several_nops
|
|
|
|
nop
|
|
|
|
nop
|
|
|
|
nop
|
|
|
|
nop
|
|
|
|
.endm
|
|
|
|
|
|
|
|
comment "exit (0)"
|
|
|
|
.macro gdbasm_exit0
|
|
|
|
comment "Don't know how to exit, but this will certainly halt..."
|
|
|
|
ldi @(gr0,0), gr5
|
|
|
|
.endm
|
|
|
|
|
|
|
|
comment "crt0 startup"
|
|
|
|
.macro gdbasm_startup
|
|
|
|
call .Lcall
|
|
|
|
.Lcall: movsg lr, gr4
|
|
|
|
sethi #gprelhi(.Lcall), gr5
|
|
|
|
setlo #gprello(.Lcall), gr5
|
|
|
|
sub gr4, gr5, gr16
|
|
|
|
|
|
|
|
sethi #gprelhi(_stack), sp
|
|
|
|
setlo #gprello(_stack), sp
|
|
|
|
setlos #0, fp
|
|
|
|
add sp, gr16, sp
|
|
|
|
.endm
|
|
|
|
|
|
|
|
comment "Declare a data variable"
|
* gdb.asm/alpha.inc, gdb.asm/frv.inc, gdb.asm/i386.inc,
gdb.asm/ia64.inc, gdb.asm/m68hc11.inc, gdb.asm/m68k.inc,
gdb.asm/mips.inc, gdb.asm/pa.inc, gdb.asm/powerpc.inc,
gdb.asm/s390.inc, gdb.asm/s390x.inc, gdb.asm/sh.inc,
gdb.asm/x86_64.inc: Use .purgem before redefining macros.
2005-03-07 22:16:50 +01:00
|
|
|
.purgem gdbasm_datavar
|
2003-12-13 02:01:08 +01:00
|
|
|
.macro gdbasm_datavar name value
|
|
|
|
.data
|
|
|
|
\name:
|
|
|
|
.long \value
|
|
|
|
.endm
|