You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.6 KiB
94 lines
3.6 KiB
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001 |
|
From: Fedora GDB patches <invalid@email.com> |
|
Date: Fri, 27 Oct 2017 21:07:50 +0200 |
|
Subject: gdb-6.6-bz230000-power6-disassembly-test.patch |
|
|
|
;; Testcase for PPC Power6/DFP instructions disassembly (BZ 230000). |
|
;;=fedoratest |
|
|
|
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=230000 |
|
|
|
The original testcase |
|
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=230000#c1 |
|
requires too recent GCC. |
|
|
|
diff --git a/gdb/testsuite/gdb.arch/powerpc-power6.exp b/gdb/testsuite/gdb.arch/powerpc-power6.exp |
|
new file mode 100644 |
|
--- /dev/null |
|
+++ b/gdb/testsuite/gdb.arch/powerpc-power6.exp |
|
@@ -0,0 +1,54 @@ |
|
+# Copyright 2007 Free Software Foundation, Inc. |
|
+ |
|
+# This program is free software; you can redistribute it and/or modify |
|
+# it under the terms of the GNU General Public License as published by |
|
+# the Free Software Foundation; either version 2 of the License, or |
|
+# (at your option) any later version. |
|
+# |
|
+# This program is distributed in the hope that it will be useful, |
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
+# GNU General Public License for more details. |
|
+# |
|
+# You should have received a copy of the GNU General Public License |
|
+# along with this program; if not, write to the Free Software |
|
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
+ |
|
+# Test PowerPC Power6 instructions disassembly. |
|
+ |
|
+if {![istarget "powerpc*-*-*"]} then { |
|
+ verbose "Skipping PowerPC Power6 instructions disassembly." |
|
+ return |
|
+} |
|
+ |
|
+set testfile "powerpc-power6" |
|
+set srcfile ${testfile}.s |
|
+set objfile [standard_output_file ${testfile}.o] |
|
+ |
|
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" } { |
|
+ untested "PowerPC prologue tests" |
|
+ return -1 |
|
+} |
|
+ |
|
+ |
|
+gdb_exit |
|
+gdb_start |
|
+gdb_reinitialize_dir $srcdir/$subdir |
|
+gdb_load ${objfile} |
|
+ |
|
+# Disassemble the function. |
|
+ |
|
+gdb_test "disass func" ":\tblr\r\n.*" "Basic disassembly" |
|
+ |
|
+gdb_test "disass func" ":\tdcbzl *r8,r9\r\n.*" "Power5 disassembly dcbzl" |
|
+gdb_test "disass func" ":\tfrsqrtes *f10,f11\r\n.*" "Power5 disassembly frsqrtes" |
|
+gdb_test "disass func" ":\tdadd *f1,f2,f1\r\n.*" "Power6 disassembly dadd" |
|
+gdb_test "disass func" ":\tdaddq *f0,f2,f0\r\n.*" "Power6 disassembly daddq" |
|
+gdb_test "disass func" ":\tdsub *f1,f2,f1\r\n.*" "Power6 disassembly dsub" |
|
+gdb_test "disass func" ":\tdsubq *f0,f2,f0\r\n.*" "Power6 disassembly dsubq" |
|
+gdb_test "disass func" ":\tdmul *f1,f2,f1\r\n.*" "Power6 disassembly dmul" |
|
+gdb_test "disass func" ":\tdmulq *f0,f2,f0\r\n.*" "Power6 disassembly dmulq" |
|
+gdb_test "disass func" ":\tddiv *f1,f2,f1\r\n.*" "Power6 disassembly ddiv" |
|
+gdb_test "disass func" ":\tddivq *f0,f2,f0\r\n.*" "Power6 disassembly ddivq" |
|
+gdb_test "disass func" ":\tdcmpu *cr1,f2,f1\r\n.*" "Power6 disassembly dcmpu" |
|
+gdb_test "disass func" ":\tdcmpuq *cr1,f2,f0\r\n.*" "Power6 disassembly dcmpuq" |
|
diff --git a/gdb/testsuite/gdb.arch/powerpc-power6.s b/gdb/testsuite/gdb.arch/powerpc-power6.s |
|
new file mode 100644 |
|
--- /dev/null |
|
+++ b/gdb/testsuite/gdb.arch/powerpc-power6.s |
|
@@ -0,0 +1,16 @@ |
|
+ .text |
|
+ .globl func |
|
+func: |
|
+ blr |
|
+ .long 0x7c284fec /* dcbzl r8,r9 */ |
|
+ .long 0xed405834 /* frsqrtes f10,f11 */ |
|
+ .long 0xec220804 /* dadd f1,f2,f1 */ |
|
+ .long 0xfc020004 /* daddq f0,f2,f0 */ |
|
+ .long 0xec220c04 /* dsub f1,f2,f1 */ |
|
+ .long 0xfc020404 /* dsubq f0,f2,f0 */ |
|
+ .long 0xec220844 /* dmul f1,f2,f1 */ |
|
+ .long 0xfc020044 /* dmulq f0,f2,f0 */ |
|
+ .long 0xec220c44 /* ddiv f1,f2,f1 */ |
|
+ .long 0xfc020444 /* ddivq f0,f2,f0 */ |
|
+ .long 0xec820d04 /* dcmpu cr1,f2,f1 */ |
|
+ .long 0xfc820504 /* dcmpuq cr1,f2,f0 */
|
|
|