Re: [RFA] Fix gdb.asm/asm-source.exp for hppa64-hpux

Randolph Chung
2005-12-01T15:33:51Z

[-- Attachment #1: Type: text/plain, Size: 347 bytes --]

>>pa.inc/pa64.inc aren't good --- people working on other platforms will
>>ignore those, but it's people on other platforms that we need to
>>reach. common.inc seems like the right thing. If there were a
>>skeleton .inc file, that'd be ideal.
>
> I agree that common.inc is best.

ok, here they are again as two separate patches. ok?

randolph

[-- Attachment #2: asm.diff --]
[-- Type: text/x-patch, Size: 5110 bytes --]

2005-12-01 Randolph Chung <tausq@debian.org>

* gdb.asm/common.inc: Indent commands.
* gdb.asm/asmsrc1.s: Likewise.
* gdb.asm/asmsrc2.s: Likewise.

Index: asmsrc1.s
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asmsrc1.s,v
retrieving revision 1.6
diff -u -p -r1.6 asmsrc1.s
--- asmsrc1.s 29 Nov 2003 13:55:17 -0000 1.6
+++ asmsrc1.s 1 Dec 2005 15:28:16 -0000
@@ -1,69 +1,69 @@
.include "common.inc"
.include "arch.inc"

-comment "WARNING: asm-source.exp checks for line numbers printed by gdb."
-comment "Be careful about changing this file without also changing"
-comment "asm-source.exp."
+ comment "WARNING: asm-source.exp checks for line numbers printed by gdb."
+ comment "Be careful about changing this file without also changing"
+ comment "asm-source.exp."

-comment "This file is not linked with crt0."
-comment "Provide very simplistic equivalent."
+ comment "This file is not linked with crt0."
+ comment "Provide very simplistic equivalent."

.global _start
-gdbasm_declare _start
+ gdbasm_declare _start
gdbasm_startup
gdbasm_call main
gdbasm_exit0
gdbasm_end _start

-comment "main routine for assembly source debugging test"
-comment "This particular testcase uses macros in <arch>.inc to achieve"
-comment "machine independence."
+ comment "main routine for assembly source debugging test"
+ comment "This particular testcase uses macros in <arch>.inc to achieve"
+ comment "machine independence."

.global main
-gdbasm_declare main
+ gdbasm_declare main
gdbasm_enter

-comment "Call a macro that consists of several lines of assembler code."
+ comment "Call a macro that consists of several lines of assembler code."

gdbasm_several_nops

-comment "Call a subroutine in another file."
+ comment "Call a subroutine in another file."

gdbasm_call foo2

-comment "All done."
+ comment "All done."

gdbasm_exit0
gdbasm_end main

-comment "A routine for foo2 to call."
+ comment "A routine for foo2 to call."

.global foo3
-gdbasm_declare foo3
+ gdbasm_declare foo3
gdbasm_enter
gdbasm_leave
gdbasm_end foo3

.global exit
-gdbasm_declare exit
+ gdbasm_declare exit
gdbasm_exit0
gdbasm_end exit

-comment "A static function"
+ comment "A static function"

-gdbasm_declare foostatic
+ gdbasm_declare foostatic
gdbasm_enter
gdbasm_leave
gdbasm_end foostatic

-comment "A global variable"
+ comment "A global variable"

.global globalvar
-gdbasm_datavar globalvar 11
+ gdbasm_datavar globalvar 11

-comment "A static variable"
+ comment "A static variable"

-gdbasm_datavar staticvar 5
+ gdbasm_datavar staticvar 5

.include "note.inc"
Index: asmsrc2.s
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asmsrc2.s,v
retrieving revision 1.4
diff -u -p -r1.4 asmsrc2.s
--- asmsrc2.s 22 Oct 2002 01:43:37 -0000 1.4
+++ asmsrc2.s 1 Dec 2005 15:28:16 -0000
@@ -1,18 +1,18 @@
.include "common.inc"
.include "arch.inc"

-comment "Second file in assembly source debugging testcase."
+ comment "Second file in assembly source debugging testcase."

.global foo2
-gdbasm_declare foo2
+ gdbasm_declare foo2
gdbasm_enter

-comment "Call someplace else (several times)."
+ comment "Call someplace else (several times)."

gdbasm_call foo3
gdbasm_call foo3

-comment "All done, return."
+ comment "All done, return."

gdbasm_leave
gdbasm_end foo2
Index: common.inc
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/common.inc,v
retrieving revision 1.3
diff -u -p -r1.3 common.inc
--- common.inc 22 Oct 2002 01:43:37 -0000 1.3
+++ common.inc 1 Dec 2005 15:28:16 -0000
@@ -3,6 +3,10 @@

comment "Can't rely on assembler comment character so do this."

+ comment "On some platforms (like HPUX), only labels are allowed"
+ comment "to start at the first column. Beware of this when editing"
+ comment "the assembly files for this test."
+
.macro include arch file
.include "\arch\file"
.endm
@@ -23,14 +27,14 @@
.macro gdbasm_end name
.endm

-comment "arch.inc is responsible for defining the following macros:"
-comment "enter - subroutine prologue"
-comment "leave - subroutine epilogue"
-comment "call - call a named subroutine"
-comment "several_nops - execute several (typically 4) nops"
-comment "exit0 - exit (0)"
-
-comment "arch.inc may also override the default definitions of:"
-comment "datavar - define a data variable"
-comment "declare - declare the start of a subroutine"
-comment "end - end a subroutine"
+ comment "arch.inc is responsible for defining the following macros:"
+ comment "enter - subroutine prologue"
+ comment "leave - subroutine epilogue"
+ comment "call - call a named subroutine"
+ comment "several_nops - execute several (typically 4) nops"
+ comment "exit0 - exit (0)"
+
+ comment "arch.inc may also override the default definitions of:"
+ comment "datavar - define a data variable"
+ comment "declare - declare the start of a subroutine"
+ comment "end - end a subroutine"

[-- Attachment #3: asm2.diff --]
[-- Type: text/x-patch, Size: 1679 bytes --]

2005-12-01 Randolph Chung <tausq@debian.org>

* gdb.asm/asm-source.exp (hppa64-*-hpux*): New.
* gdb.asm/pa64.inc: New file.

Index: asm-source.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asm-source.exp,v
retrieving revision 1.58
diff -u -p -r1.58 asm-source.exp
--- asm-source.exp 11 Nov 2005 11:18:53 -0000 1.58
+++ asm-source.exp 1 Dec 2005 15:28:16 -0000
@@ -144,6 +144,11 @@ switch -glob -- [istarget] {
set asm-flags "-I${srcdir}/${subdir} -I${objdir}/${subdir}"
set debug-flags "-gdwarf-2"
}
+ "hppa64-*-hpux*" {
+ set asm-arch pa64
+ set asm-flags "-I${srcdir}/${subdir} -I${objdir}/${subdir}"
+ set debug-flags "-gdwarf-2"
+ }
"h83*-*" {
set asm-arch h8300
set asm-flags "-gdwarf2 -I${srcdir}/${subdir} -I${objdir}/${subdir}"

--- /dev/null Thu Dec 1 10:28:09 2005
+++ pa64.inc Wed Nov 30 18:45:18 2005
@@ -0,0 +1,46 @@
+ comment "subroutine prologue"
+ .macro gdbasm_enter
+ std %rp, -16(%sp)
+ copy %r3, %r1
+ copy %sp, %r3
+ std,ma %r1, 128(%sp)
+ .endm
+
+ comment "subroutine epilogue"
+ .macro gdbasm_leave
+ ldd -16(%r3), %rp
+ bve (%rp)
+ ldd,mb -128(%sp), %r3
+ .endm
+
+ .macro gdbasm_call subr
+ b,l \subr , %rp
+ nop
+ .endm
+
+ .macro gdbasm_several_nops
+ nop
+ nop
+ nop
+ nop
+ .endm
+
+ comment "exit (0)"
+ .macro gdbasm_exit0
+ comment "Don't know how to exit, but this will certainly halt..."
+ ldw 0(%r0), %r1
+ .endm
+
+ comment "crt0 startup"
+ .macro gdbasm_startup
+ .align 8
+ .endm
+
+ comment "Declare a data variable"
+ .purgem gdbasm_datavar
+ .macro gdbasm_datavar name value
+ .data
+\name:
+ .long \value
+ .endm
+