This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] New gdb.asm target sh


Hi,

the below patch adds sh as a supported target to the gdb.asm testsuite.
Ok to checkin?

Corinna

	* gdb.asm/asm-source.exp: Add sh*-*-* as supported target.
	* gdb.asm/sh.inc: New file.

Index: asm-source.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asm-source.exp,v
retrieving revision 1.42
diff -u -p -r1.42 asm-source.exp
--- asm-source.exp	25 Aug 2003 23:43:40 -0000	1.42
+++ asm-source.exp	8 Sep 2003 14:33:28 -0000
@@ -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
     }
Index: sh.inc
===================================================================
RCS file: sh.inc
diff -N sh.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sh.inc	8 Sep 2003 14:33:28 -0000
@@ -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

-- 
Corinna Vinschen
Cygwin Developer
Red Hat, Inc.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]