This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
PATCH: S/390: add assembly-language tests
- From: Jim Blandy <jimb at zwingli dot cygnus dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Fri, 30 Nov 2001 20:31:49 -0500 (EST)
- Subject: PATCH: S/390: add assembly-language tests
2001-11-30 Jim Blandy <jimb@redhat.com>
Add assembly-source tests for s390-ibm-linux.
* gdb.asm/s390.inc: New file.
* gdb.asm/configure.in, gdb.asm/asm-source.exp: Add clauses for
the S/390 architecture.
* gdb.asm/configure: Regenerated.
Index: gdb/testsuite/gdb.asm/asm-source.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asm-source.exp,v
retrieving revision 1.9
diff -c -r1.9 asm-source.exp
*** gdb/testsuite/gdb.asm/asm-source.exp 2001/11/27 01:29:03 1.9
--- gdb/testsuite/gdb.asm/asm-source.exp 2001/12/01 01:11:03
***************
*** 38,43 ****
--- 38,46 ----
if [istarget "d10v-*-*"] then {
set asm-arch d10v
}
+ if [istarget "s390-*-*"] then {
+ set asm-arch s390
+ }
if [istarget "i\[3456\]86-*-*"] then {
set asm-arch i386
}
Index: gdb/testsuite/gdb.asm/configure.in
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/configure.in,v
retrieving revision 1.5
diff -c -r1.5 configure.in
*** gdb/testsuite/gdb.asm/configure.in 2001/11/27 01:28:35 1.5
--- gdb/testsuite/gdb.asm/configure.in 2001/12/01 01:11:04
***************
*** 16,21 ****
--- 16,22 ----
archinc=common.inc
case ${target} in
d10v-*-*) archinc=d10v.inc ;;
+ s390-*-*) archinc=s390.inc ;;
i[[3456]]86*) archinc=i386.inc ;;
m32r*-*) archinc=m32r.inc ;;
sparc-*-*) archinc=sparc.inc ;;
Index: gdb/testsuite/gdb.asm/s390.inc
===================================================================
RCS file: s390.inc
diff -N s390.inc
*** gdb/testsuite/gdb.asm/s390.inc Tue May 5 13:32:27 1998
--- gdb/testsuite/gdb.asm/s390.inc Fri Nov 30 17:11:04 2001
***************
*** 0 ****
--- 1,68 ----
+ ### entry point code
+ .macro gdbasm_startup
+
+ # Align the stack pointer to an 8-byte boundary.
+ lhi %r0,-8
+ nr %r15,%r0
+
+ # Reserve space for the standard stack frame:
+ # back chain, and space for the callee to save its registers.
+ ahi %r15,-104
+
+ # Zero this frame's back chain pointer.
+ xc 0(4,%r15),0(%r15)
+ .endm
+
+
+ ### Call a function.
+ .macro gdbasm_call subr
+
+ # Put the address of the constant in %r1, load the constant
+ # (SUBR's address), and jump to it.
+ bras %r1, .Lafterconst\@
+ .long \subr
+ .Lafterconst\@:
+ l %r1,0(%r1)
+ basr %r14,%r1
+ .endm
+
+
+ ### Exit with a zero status.
+ .macro gdbasm_exit0
+ lhi %r2, 0
+ svc 1
+ .endm
+
+ ### Standard subroutine prologue.
+ .macro gdbasm_enter
+
+ # Save all the callee-saves registers. What the heck.
+ stm %r6,%r15,24(%r15)
+
+ # Allocate the stack frame, and write the back chain pointer.
+ # Keep the original SP in %r11.
+ lr %r1,%r15
+ ahi %r15,-96
+ st %r1,0(%r15)
+ .endm
+
+
+ ### Standard subroutine epilogue.
+ .macro gdbasm_leave
+
+ # Restore all our registers. This also pops the frame, and
+ # restores our return address.
+ lm %r6,%r15,120(%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