binutils-gdb/gdb/testsuite/gdb.asm/s390x.inc
Daniel Jacobowitz 584b6e9e37 * 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 21:16:50 +00:00

70 lines
1.5 KiB
PHP

### entry point code
.macro gdbasm_startup
# Align the stack pointer to an 8-byte boundary.
lghi %r0,-16
ngr %r15,%r0
# Reserve space for the standard stack frame:
# back chain, and space for the callee to save its registers.
aghi %r15,-168
# Zero this frame's back chain pointer.
xc 0(8,%r15),0(%r15)
.endm
### Call a function.
.macro gdbasm_call subr
brasl %r14, \subr
.endm
### Exit with a zero status.
.macro gdbasm_exit0
lghi %r2, 0
svc 1
.endm
### Standard subroutine prologue.
.macro gdbasm_enter
# Save all the callee-saves registers. What the heck.
stmg %r6,%r15,48(%r15)
# Allocate the stack frame, and write the back chain pointer.
# Keep the original SP in %r11.
lgr %r11,%r15
aghi %r15,-168
stg %r11,0(%r15)
.endm
### Standard subroutine epilogue.
.macro gdbasm_leave
# Restore all our registers. This also pops the frame, and
# restores our return address.
lmg %r6,%r15,216(%r15)
# Jump to the return address.
br %r14
.endm
### Several nops.
.macro gdbasm_several_nops
lr %r0, %r0
lr %r0, %r0
lr %r0, %r0
lr %r0, %r0
.endm
### Declare an `int' variable.
.purgem gdbasm_datavar
.macro gdbasm_datavar name value
.data
\name:
.long \value
.endm