Add support for assembly source testing on the s390x.
* gdb.asm/asm-source.exp: Add a case for the s390x-*-* architecture. * gdb.asm/s390x.inc: New file.
This commit is contained in:
parent
be375bae05
commit
09bf6082f5
3 changed files with 76 additions and 0 deletions
|
@ -1,5 +1,10 @@
|
|||
2003-05-07 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
Add support for assembly source testing on the s390x.
|
||||
* gdb.asm/asm-source.exp: Add a case for the s390x-*-*
|
||||
architecture.
|
||||
* gdb.asm/s390x.inc: New file.
|
||||
|
||||
* gdb.asm/asm-source.exp: Use a 'switch -glob' statement, not a
|
||||
succession of 'if' statements.
|
||||
|
||||
|
|
|
@ -48,6 +48,9 @@ switch -glob -- [istarget] {
|
|||
"s390-*-*" {
|
||||
set asm-arch s390
|
||||
}
|
||||
"s390x-*-*" {
|
||||
set asm-arch s390x
|
||||
}
|
||||
"x86_64-*-*" {
|
||||
set asm-arch x86_64
|
||||
set asm-flags "-gdwarf2 -I${srcdir}/${subdir} -I${objdir}/${subdir}"
|
||||
|
|
68
gdb/testsuite/gdb.asm/s390x.inc
Normal file
68
gdb/testsuite/gdb.asm/s390x.inc
Normal file
|
@ -0,0 +1,68 @@
|
|||
### 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.
|
||||
.macro gdbasm_datavar name value
|
||||
.data
|
||||
\name:
|
||||
.long \value
|
||||
.endm
|
Loading…
Reference in a new issue