2005-12-09 Randolph Chung <tausq@debian.org>
authorRandolph Chung <tausq@debian.org>
Fri, 9 Dec 2005 10:57:40 +0000 (10:57 +0000)
committerRandolph Chung <tausq@debian.org>
Fri, 9 Dec 2005 10:57:40 +0000 (10:57 +0000)
* gdb.arch/pa-nullify.exp: Handle hppa64-*-* targets.
(get_addr_of_sym): Remove duplicate print.
(gen_core): xfail hppa*-*-hpux*, update expected output.
* gdb.arch/pa-nullify.s: Reformat to also work on HPUX.
* gdb.arch/pa64-nullify.s: New file.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/pa-nullify.exp
gdb/testsuite/gdb.arch/pa-nullify.s
gdb/testsuite/gdb.arch/pa64-nullify.s [new file with mode: 0644]

index 77bb882b5f2d82cf4e3a70a609912069a2781726..76217de3f591c44fe7c2676dda6abbb59546b891 100644 (file)
@@ -1,3 +1,11 @@
+2005-12-09  Randolph Chung  <tausq@debian.org>
+
+       * gdb.arch/pa-nullify.exp: Handle hppa64-*-* targets.
+       (get_addr_of_sym): Remove duplicate print.
+       (gen_core): xfail hppa*-*-hpux*, update expected output.
+       * gdb.arch/pa-nullify.s: Reformat to also work on HPUX.
+       * gdb.arch/pa64-nullify.s: New file.
+
 2005-12-09  Randolph Chung  <tausq@debian.org>
 
        * gdb.base/dump.exp: Mark hppa64-*-* as 64-bit target.
index 4cf5c725876f1da9986736bd7029028e9aeaeb06..fcc7f82bde16ebf8b7163a9da379bb3cc179337e 100644 (file)
@@ -25,12 +25,19 @@ set bug_id 0
 
 # Test handling of nullified instructions for the pa target.
 
-if ![istarget "hppa*-*-*"] then {
-    verbose "Skipping hppa nullification tests."
-    return
+switch -glob -- [istarget] {
+    "hppa-*-*" {
+       set testfile "pa-nullify"
+    }
+    "hppa64-*-*" {
+       set testfile "pa64-nullify"
+    }
+    "*" {
+        verbose "Skipping hppa nullification tests."
+        return
+    }
 }
 
-set testfile "pa-nullify"
 set srcfile ${testfile}.s
 set binfile ${objdir}/${subdir}/${testfile}
 set gcorefile ${objdir}/${subdir}/${testfile}.gcore
@@ -78,7 +85,6 @@ proc get_addr_of_sym { sym } {
   global hex
 
   set test "get address of $sym"
-  send_gdb "print $sym\n"
   gdb_test_multiple "print $sym" $test {
     -re ".*($hex) <$sym>.*$gdb_prompt $" {
       set addr $expect_out(1,string)
@@ -93,7 +99,7 @@ if { ! [ runto_main ] } then { gdb_suppress_tests; }
 
 set foo [get_addr_of_sym "foo"]
 set bar [get_addr_of_sym "bar"]
-set foo_last [expr $bar - 4]
+set foo_last "(bar - 4)"
 
 gdb_breakpoint "*$foo_last"
 
@@ -112,13 +118,19 @@ proc gen_core { test } {
   set gcore_works 0
   set escapedfilename [string_to_regexp $gcorefile]
 
+  # gcore is not yet implemented for HPUX
+  setup_xfail hppa*-*-hpux*
+
   gdb_test_multiple "gcore $gcorefile" "$test: gcore" {
     -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
       pass "$test: gcore"
       set gcore_works 1
     }
+    -re "Undefined command.*$gdb_prompt $" {
+      fail "$test: gcore (undefined command)"
+    }
     -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-      fail "$test: gcore"
+      fail "$test: gcore (can't create corefile)"
     }
   }
 
index 90269b4d7b14a6e85fa39c24c42ce313aa4ff552..8b756bd983699a3eb4fc45f6c2a9abf8f6e92bf9 100644 (file)
@@ -1,7 +1,6 @@
-       .LEVEL 1.1
        .text
-       .align 4
-.globl foo
+       .align 8
+       .globl foo
        .type   foo, @function
 foo:
        .PROC
@@ -19,7 +18,7 @@ foo:
        .EXIT
        .PROCEND
 
-.globl bar
+       .globl bar
        .type   bar, @function
 bar:
        .PROC
@@ -34,7 +33,7 @@ bar:
        .EXIT
        .PROCEND
 
-.globl main
+       .globl main
        .type   main, @function
 main:
        .PROC
diff --git a/gdb/testsuite/gdb.arch/pa64-nullify.s b/gdb/testsuite/gdb.arch/pa64-nullify.s
new file mode 100644 (file)
index 0000000..f297699
--- /dev/null
@@ -0,0 +1,70 @@
+       .LEVEL 2.0w
+       .text
+       .align 8
+       .globl  foo
+       .type   foo, @function
+foo:
+       .PROC
+       .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
+       .ENTRY
+       copy %r3,%r1
+       copy %r30,%r3
+       std,ma %r1,64(%r30)
+       std %r3,-8(%r30)
+       ldo -64(%r29),%r28
+       stw %r26,0(%r28)
+       ldw 0(%r28),%r28
+       extrd,s %r28,63,32,%r28
+       ldo 64(%r3),%r30
+       ldd,mb -64(%r30),%r3
+       nop
+       bve,n (%r2)
+       .EXIT
+       .PROCEND
+
+       .align 8
+       .globl  bar
+       .type   bar, @function
+bar:
+       .PROC
+       .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
+       .ENTRY
+       copy %r3,%r1
+       copy %r30,%r3
+       std,ma %r1,64(%r30)
+       std %r3,-8(%r30)
+       ldo 64(%r3),%r30
+       ldd,mb -64(%r30),%r3
+       bve,n (%r2)
+       .EXIT
+       .PROCEND
+
+       .align 8
+       .globl  main
+       .type   main, @function
+main:
+       .PROC
+       .CALLINFO FRAME=128,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=4
+       .ENTRY
+       std %r2,-16(%r30)
+       copy %r3,%r1
+       copy %r30,%r3
+       std,ma %r1,128(%r30)
+       std %r3,-8(%r30)
+       std %r4,8(%r3)
+       ldo -64(%r29),%r28
+       stw %r26,0(%r28)
+       std %r25,8(%r28)
+       ldw 0(%r28),%r26
+       ldo -48(%r30),%r29
+       copy %r27,%r4
+       b,l foo,%r2
+       nop
+       copy %r4,%r27
+       ldd -16(%r3),%r2
+       ldd 8(%r3),%r4
+       ldo 64(%r3),%r30
+       ldd,mb -64(%r30),%r3
+       bve,n (%r2)
+       .EXIT
+       .PROCEND