summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2003-09-15 09:52:56 +0000
committerCorinna Vinschen <corinna@vinschen.de>2003-09-15 09:52:56 +0000
commit71e06f8034fdabee2d7579e85fb6a73d2a98c2ba (patch)
tree0df2c7b8c8c54a62d8009d30e8661229863fd5f5
parentd0f37bb2b3e04df50ffea1cebb74f3906c48a85d (diff)
downloadbinutils-gdb-71e06f8034fdabee2d7579e85fb6a73d2a98c2ba.tar.gz
* gdb.asm/asm-source.exp: Add sh*-*-* as supported target.
* gdb.asm/sh.inc: New file.
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.asm/asm-source.exp5
-rw-r--r--gdb/testsuite/gdb.asm/sh.inc85
3 files changed, 95 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 324c8b3aa17..a81f45215e5 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2003-09-15 Corinna Vinschen <vinschen@redhat.com>
+
+ * gdb.asm/asm-source.exp: Add sh*-*-* as supported target.
+ * gdb.asm/sh.inc: New file.
+
2003-09-11 David Carlton <carlton@kealia.com>
* gdb.c++/namespace.exp: Add tests for namespace types.
diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
index ef7d74fe76d..8b0df38f3f1 100644
--- a/gdb/testsuite/gdb.asm/asm-source.exp
+++ b/gdb/testsuite/gdb.asm/asm-source.exp
@@ -85,6 +85,11 @@ switch -glob -- [istarget] {
"powerpc*-*" {
set asm-arch powerpc
}
+ "sh*-*-*" {
+ set asm-arch sh
+ set asm-flags "-gdwarf2 -I${srcdir}/${subdir} -I${objdir}/${subdir}"
+ set link-flags "--entry _start"
+ }
"sparc-*-*" {
set asm-arch sparc
}
diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc
new file mode 100644
index 00000000000..88a24c31899
--- /dev/null
+++ b/gdb/testsuite/gdb.asm/sh.inc
@@ -0,0 +1,85 @@
+# You'll find a bunch of nop opcodes in the below macros. They are
+# there to keep the code correctly aligned. Be careful to maintain
+# them when changing the code.
+
+ comment "subroutine declare"
+ .macro gdbasm_declare name
+ .align 1
+ .global \name
+\name:
+ .endm
+
+ comment "subroutine prologue"
+ .macro gdbasm_enter
+ mov.l r14,@-r15
+ sts.l pr,@-r15
+ mov r15,r14
+ nop
+ .endm
+
+ comment "subroutine epilogue"
+ .macro gdbasm_leave
+ mov r14,r15
+ lds.l @r15+,pr
+ mov.l @r15+,r14
+ rts
+ nop
+ nop
+ .endm
+
+ comment "subroutine end"
+ .macro gdbasm_end name
+ .size \name, .-_foo1
+ .align 1
+ .endm
+
+ comment "subroutine call"
+ .macro gdbasm_call subr
+ mov.l .Lconst\@,r1
+ bra .Lafterconst\@
+ nop
+ nop
+.Lconst\@:
+ .align 2
+ .long \subr
+ .align 1
+.Lafterconst\@:
+ jsr @r1
+ nop
+ .endm
+
+ .macro gdbasm_several_nops
+ nop
+ nop
+ nop
+ nop
+ .endm
+
+ comment "exit (0)"
+ .macro gdbasm_exit0
+ sleep
+ nop
+ .endm
+
+ comment "crt0 startup"
+ .macro gdbasm_startup
+ mov.l .stackaddr,r15
+ bra .afterstackaddr
+ nop
+ nop
+ .align 2
+.stackaddr:
+ .long 196608 ! 0x30000
+ .align 1
+.afterstackaddr:
+ .endm
+
+ comment "Declare a data variable"
+ .macro gdbasm_datavar name value
+ .data
+ .align 2
+ .type \name, @object
+ .size \name, 4
+\name:
+ .long \value
+ .endm