Add support for assembly source testing on the s390x.
authorJim Blandy <jimb@codesourcery.com>
Wed, 7 May 2003 21:52:53 +0000 (21:52 +0000)
committerJim Blandy <jimb@codesourcery.com>
Wed, 7 May 2003 21:52:53 +0000 (21:52 +0000)
* gdb.asm/asm-source.exp: Add a case for the s390x-*-*
architecture.
* gdb.asm/s390x.inc: New file.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.asm/asm-source.exp
gdb/testsuite/gdb.asm/s390x.inc [new file with mode: 0644]

index c2b3631bea2728dd95102e957d8742d2f8cd75b9..c53111d29038b2bf2f371c7007d6dc68158084eb 100644 (file)
@@ -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.
 
index 8194f9efb9761009889d7e3ea3e97b745aa56ad7..e4aa7be4fd90c9e6290632d351cd6fd1151b5ed4 100644 (file)
@@ -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}"
diff --git a/gdb/testsuite/gdb.asm/s390x.inc b/gdb/testsuite/gdb.asm/s390x.inc
new file mode 100644 (file)
index 0000000..4e5bf2e
--- /dev/null
@@ -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