|
|
7bc85d |
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
|
|
|
7bc85d |
From: Fedora GDB patches <invalid@email.com>
|
|
|
7bc85d |
Date: Fri, 27 Oct 2017 21:07:50 +0200
|
|
|
7bc85d |
Subject: gdb-ppc-power7-test.patch
|
|
|
7bc85d |
|
|
|
7bc85d |
|
|
|
7bc85d |
|
|
|
7bc85d |
|
|
|
7bc85d |
diff
|
|
|
7bc85d |
new file mode 100644
|
|
|
7bc85d |
--- /dev/null
|
|
|
7bc85d |
+++ b/gdb/testsuite/gdb.arch/powerpc-power7rh.exp
|
|
|
7bc85d |
@@ -0,0 +1,178 @@
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+# This program is free software; you can redistribute it and/or modify
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+# along with this program; if not, write to the Free Software
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+if {![istarget "powerpc*-*-*"]} then {
|
|
|
7bc85d |
+ verbose "Skipping PowerPC Power7 instructions disassembly."
|
|
|
7bc85d |
+ return
|
|
|
7bc85d |
+}
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+set testfile "powerpc-power7rh"
|
|
|
7bc85d |
+set srcfile ${testfile}.s
|
|
|
7bc85d |
+set objfile [standard_output_file ${testfile}.o]
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" } {
|
|
|
7bc85d |
+ untested "PowerPC Power7 instructions disassembly"
|
|
|
7bc85d |
+ return -1
|
|
|
7bc85d |
+}
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+gdb_exit
|
|
|
7bc85d |
+gdb_start
|
|
|
7bc85d |
+gdb_reinitialize_dir $srcdir/$subdir
|
|
|
7bc85d |
+gdb_load ${objfile}
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+set test "disass func"
|
|
|
7bc85d |
+gdb_test_multiple $test $test {
|
|
|
7bc85d |
+ -re "\r\nDump of assembler code for function func:(\r\n.*\r\n)End of assembler dump.\r\n$gdb_prompt $" {
|
|
|
7bc85d |
+ set func $expect_out(1,string)
|
|
|
7bc85d |
+ pass $test
|
|
|
7bc85d |
+ }
|
|
|
7bc85d |
+}
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+proc instr_to_patt {offset instr} {
|
|
|
7bc85d |
+ # 0x0000000000000018 <func+24>: stxvd2x vs43,r4,r5
|
|
|
7bc85d |
+ return ".*\r\n\[ \t\]*[string map {0x 0x0*} $offset] <(func)?\\+?\[0-9\]*>:\[ \t\]*[string map [list { } "\[ \t\]+" . {\.}] $instr]\[ \t\]*\r\n.*"
|
|
|
7bc85d |
+}
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+# KFAIL strings would not exist if -Many would print the same as -Mpower7.
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+# http:
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+proc func_check {offset instr {kfail ""}} {
|
|
|
7bc85d |
+ global func
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+ set test "Found $offset: $instr"
|
|
|
7bc85d |
+ if [regexp -nocase -line [instr_to_patt $offset $instr] $func] {
|
|
|
7bc85d |
+ pass $test
|
|
|
7bc85d |
+ } elseif {$kfail != "" && [regexp -nocase -line [instr_to_patt $offset $kfail] $func]} {
|
|
|
7bc85d |
+ kfail gdb/NNNN $test
|
|
|
7bc85d |
+ } else {
|
|
|
7bc85d |
+ fail $test
|
|
|
7bc85d |
+ }
|
|
|
7bc85d |
+}
|
|
|
7bc85d |
+
|
|
|
7bc85d |
+func_check 0x0 "lxvd2x vs3,r4,r5"
|
|
|
7bc85d |
+# [PATCH] Remove support for POWER7 VSX load/store with update instructions
|
|
|
7bc85d |
+# http:
|
|
|
7bc85d |
+# http:
|
|
|
7bc85d |
+func_check 0x4 "lxvb16x vs3,r4,r5"
|
|
|
7bc85d |
+func_check 0x8 "lxvd2x vs43,r4,r5"
|
|
|
7bc85d |
+func_check 0xc "lxvb16x vs43,r4,r5"
|
|
|
7bc85d |
+func_check 0x10 "stxvd2x vs3,r4,r5"
|
|
|
7bc85d |
+func_check 0x14 "stxvb16x vs3,r4,r5"
|
|
|
7bc85d |
+func_check 0x18 "stxvd2x vs43,r4,r5"
|
|
|
7bc85d |
+func_check 0x1c "stxvb16x vs43,r4,r5"
|
|
|
7bc85d |
+func_check 0x20 "xxmrghd vs3,vs4,vs5"
|
|
|
7bc85d |
+func_check 0x24 "xxmrghd vs43,vs44,vs45"
|
|
|
7bc85d |
+func_check 0x28 "xxmrgld vs3,vs4,vs5"
|
|
|
7bc85d |
+func_check 0x2c "xxmrgld vs43,vs44,vs45"
|
|
|
7bc85d |
+func_check 0x30 "xxmrghd vs3,vs4,vs5"
|
|
|
7bc85d |
+func_check 0x34 "xxmrghd vs43,vs44,vs45"
|
|
|
7bc85d |
+func_check 0x38 "xxmrgld vs3,vs4,vs5"
|
|
|
7bc85d |
+func_check 0x3c "xxmrgld vs43,vs44,vs45"
|
|
|
7bc85d |
+func_check 0x40 "xxpermdi vs3,vs4,vs5,1"
|
|
|
7bc85d |
+func_check 0x44 "xxpermdi vs43,vs44,vs45,1"
|
|
|
7bc85d |
+func_check 0x48 "xxpermdi vs3,vs4,vs5,2"
|
|
|
7bc85d |
+func_check 0x4c "xxpermdi vs43,vs44,vs45,2"
|
|
|
7bc85d |
+func_check 0x50 "xvmovdp vs3,vs4"
|
|
|
7bc85d |
+func_check 0x54 "xvmovdp vs43,vs44"
|
|
|
7bc85d |
+func_check 0x58 "xvmovdp vs3,vs4"
|
|
|
7bc85d |
+func_check 0x5c "xvmovdp vs43,vs44"
|
|
|
7bc85d |
+func_check 0x60 "xvcpsgndp vs3,vs4,vs5"
|
|
|
7bc85d |
+func_check 0x64 "xvcpsgndp vs43,vs44,vs45"
|
|
|
7bc85d |
+func_check 0x68 "wait"
|
|
|
7bc85d |
+func_check 0x6c "wait"
|
|
|
7bc85d |
+func_check 0x70 "waitrsv"
|
|
|
7bc85d |
+func_check 0x74 "waitrsv"
|
|
|
7bc85d |
+func_check 0x78 "waitimpl"
|
|
|
7bc85d |
+func_check 0x7c "waitimpl"
|
|
|
7bc85d |
+func_check 0x80 "doze"
|
|
|
7bc85d |
+func_check 0x84 "nap"
|
|
|
7bc85d |
+func_check 0x88 "sleep"
|
|
|
7bc85d |
+func_check 0x8c "rvwinkle"
|
|
|
7bc85d |
+func_check 0x90 "prtyw r3,r4"
|
|
|
7bc85d |
+func_check 0x94 "prtyd r13,r14"
|
|
|
7bc85d |
+func_check 0x98 "mfcfar r10" "mfspr r10,28"
|
|
|
7bc85d |
+func_check 0x9c "mtcfar r11" "mtspr 28,r11"
|
|
|
7bc85d |
+func_check 0xa0 "cmpb r3,r4,r5"
|
|
|
7bc85d |
+func_check 0xa4 "lwzcix r10,r11,r12"
|
|
|
7bc85d |
+func_check 0xa8 "dadd f16,f17,f18"
|
|
|
7bc85d |
+func_check 0xac "daddq f20,f22,f24"
|
|
|
7bc85d |
+func_check 0xb0 "dss 3"
|
|
|
7bc85d |
+func_check 0xb4 "dssall"
|
|
|
7bc85d |
+func_check 0xb8 "dst r5,r4,1"
|
|
|
7bc85d |
+func_check 0xbc "dstt r8,r7,0"
|
|
|
7bc85d |
+func_check 0xc0 "dstst r5,r6,3"
|
|
|
7bc85d |
+func_check 0xc4 "dststt r4,r5,2"
|
|
|
7bc85d |
+func_check 0xc8 "divwe r10,r11,r12"
|
|
|
7bc85d |
+func_check 0xcc "divwe. r11,r12,r13"
|
|
|
7bc85d |
+func_check 0xd0 "divweo r12,r13,r14"
|
|
|
7bc85d |
+func_check 0xd4 "divweo. r13,r14,r15"
|
|
|
7bc85d |
+func_check 0xd8 "divweu r10,r11,r12"
|
|
|
7bc85d |
+func_check 0xdc "divweu. r11,r12,r13"
|
|
|
7bc85d |
+func_check 0xe0 "divweuo r12,r13,r14"
|
|
|
7bc85d |
+func_check 0xe4 "divweuo. r13,r14,r15"
|
|
|
7bc85d |
+func_check 0xe8 "bpermd r7,r17,r27"
|
|
|
7bc85d |
+func_check 0xec "popcntw r10,r20"
|
|
|
7bc85d |
+func_check 0xf0 "popcntd r10,r20"
|
|
|
7bc85d |
+func_check 0xf4 "ldbrx r20,r21,r22"
|
|
|
7bc85d |
+func_check 0xf8 "stdbrx r20,r21,r22"
|
|
|
7bc85d |
+func_check 0xfc "lfiwzx f10,0,r10"
|
|
|
7bc85d |
+func_check 0x100 "lfiwzx f10,r9,r10"
|
|
|
7bc85d |
+func_check 0x104 "fcfids f4,f5"
|
|
|
7bc85d |
+func_check 0x108 "fcfids. f4,f5"
|
|
|
7bc85d |
+func_check 0x10c "fcfidus f4,f5"
|
|
|
7bc85d |
+func_check 0x110 "fcfidus. f4,f5"
|
|
|
7bc85d |
+func_check 0x114 "fctiwu f4,f5"
|
|
|
7bc85d |
+func_check 0x118 "fctiwu. f4,f5"
|
|
|
7bc85d |
+func_check 0x11c "fctiwuz f4,f5"
|
|
|
7bc85d |
+func_check 0x120 "fctiwuz. f4,f5"
|
|
|
7bc85d |
+func_check 0x124 "fctidu f4,f5"
|
|
|
7bc85d |
+func_check 0x128 "fctidu. f4,f5"
|
|
|
7bc85d |
+func_check 0x12c "fctiduz f4,f5"
|
|
|
7bc85d |
+func_check 0x130 "fctiduz. f4,f5"
|
|
|
7bc85d |
+func_check 0x134 "fcfidu f4,f5"
|
|
|
7bc85d |
+func_check 0x138 "fcfidu. f4,f5"
|
|
|
7bc85d |
+func_check 0x13c "ftdiv cr0,f10,f11"
|
|
|
7bc85d |
+func_check 0x140 "ftdiv cr7,f10,f11"
|
|
|
7bc85d |
+func_check 0x144 "ftsqrt cr0,f10"
|
|
|
7bc85d |
+func_check 0x148 "ftsqrt cr7,f10"
|
|
|
7bc85d |
+func_check 0x14c "dcbtt r8,r9" "dcbt 16,r8,r9"
|
|
|
7bc85d |
+func_check 0x150 "dcbtstt r8,r9" "dcbtst 16,r8,r9"
|
|
|
7bc85d |
+func_check 0x154 "dcffix f10,f12"
|
|
|
7bc85d |
+func_check 0x158 "dcffix. f20,f22"
|
|
|
7bc85d |
+func_check 0x15c "lbarx r10,r11,r12"
|
|
|
7bc85d |
+func_check 0x160 "lbarx r10,r11,r12"
|
|
|
7bc85d |
+func_check 0x164 "lbarx r10,r11,r12,1"
|
|
|
7bc85d |
+func_check 0x168 "lharx r20,r21,r22"
|
|
|
7bc85d |
+func_check 0x16c "lharx r20,r21,r22"
|
|
|
7bc85d |
+func_check 0x170 "lharx r20,r21,r22,1"
|
|
|
7bc85d |
+func_check 0x174 "stbcx. r10,r11,r12"
|
|
|
7bc85d |
+func_check 0x178 "sthcx. r10,r11,r12"
|
|
|
7bc85d |
+func_check 0x17c "fre f14,f15"
|
|
|
7bc85d |
+func_check 0x180 "fre. f14,f15"
|
|
|
7bc85d |
+func_check 0x184 "fres f14,f15"
|
|
|
7bc85d |
+func_check 0x188 "fres. f14,f15"
|
|
|
7bc85d |
+func_check 0x18c "frsqrte f14,f15"
|
|
|
7bc85d |
+func_check 0x190 "frsqrte. f14,f15"
|
|
|
7bc85d |
+func_check 0x194 "frsqrtes f14,f15"
|
|
|
7bc85d |
+func_check 0x198 "frsqrtes. f14,f15"
|
|
|
7bc85d |
+func_check 0x19c "isel r2,r3,r4,28"
|
|
|
7bc85d |
diff
|
|
|
7bc85d |
new file mode 100644
|
|
|
7bc85d |
--- /dev/null
|
|
|
7bc85d |
|
|
|
7bc85d |
@@ -0,0 +1,107 @@
|
|
|
7bc85d |
+ .text
|
|
|
7bc85d |
+ .globl func
|
|
|
7bc85d |
+func:
|
|
|
7bc85d |
+ .long 0x7c642e98
|
|
|
7bc85d |
+ .long 0x7c642ed8
|
|
|
7bc85d |
+ .long 0x7d642e99
|
|
|
7bc85d |
+ .long 0x7d642ed9
|
|
|
7bc85d |
+ .long 0x7c642f98
|
|
|
7bc85d |
+ .long 0x7c642fd8
|
|
|
7bc85d |
+ .long 0x7d642f99
|
|
|
7bc85d |
+ .long 0x7d642fd9
|
|
|
7bc85d |
+ .long 0xf0642850
|
|
|
7bc85d |
+ .long 0xf16c6857
|
|
|
7bc85d |
+ .long 0xf0642b50
|
|
|
7bc85d |
+ .long 0xf16c6b57
|
|
|
7bc85d |
+ .long 0xf0642850
|
|
|
7bc85d |
+ .long 0xf16c6857
|
|
|
7bc85d |
+ .long 0xf0642b50
|
|
|
7bc85d |
+ .long 0xf16c6b57
|
|
|
7bc85d |
+ .long 0xf0642950
|
|
|
7bc85d |
+ .long 0xf16c6957
|
|
|
7bc85d |
+ .long 0xf0642a50
|
|
|
7bc85d |
+ .long 0xf16c6a57
|
|
|
7bc85d |
+ .long 0xf0642780
|
|
|
7bc85d |
+ .long 0xf16c6787
|
|
|
7bc85d |
+ .long 0xf0642780
|
|
|
7bc85d |
+ .long 0xf16c6787
|
|
|
7bc85d |
+ .long 0xf0642f80
|
|
|
7bc85d |
+ .long 0xf16c6f87
|
|
|
7bc85d |
+ .long 0x7c00007c
|
|
|
7bc85d |
+ .long 0x7c00007c
|
|
|
7bc85d |
+ .long 0x7c20007c
|
|
|
7bc85d |
+ .long 0x7c20007c
|
|
|
7bc85d |
+ .long 0x7c40007c
|
|
|
7bc85d |
+ .long 0x7c40007c
|
|
|
7bc85d |
+ .long 0x4c000324
|
|
|
7bc85d |
+ .long 0x4c000364
|
|
|
7bc85d |
+ .long 0x4c0003a4
|
|
|
7bc85d |
+ .long 0x4c0003e4
|
|
|
7bc85d |
+ .long 0x7c830134
|
|
|
7bc85d |
+ .long 0x7dcd0174
|
|
|
7bc85d |
+ .long 0x7d5c02a6
|
|
|
7bc85d |
+ .long 0x7d7c03a6
|
|
|
7bc85d |
+ .long 0x7c832bf8
|
|
|
7bc85d |
+ .long 0x7d4b662a
|
|
|
7bc85d |
+ .long 0xee119004
|
|
|
7bc85d |
+ .long 0xfe96c004
|
|
|
7bc85d |
+ .long 0x7c60066c
|
|
|
7bc85d |
+ .long 0x7e00066c
|
|
|
7bc85d |
+ .long 0x7c2522ac
|
|
|
7bc85d |
+ .long 0x7e083aac
|
|
|
7bc85d |
+ .long 0x7c6532ec
|
|
|
7bc85d |
+ .long 0x7e442aec
|
|
|
7bc85d |
+ .long 0x7d4b6356
|
|
|
7bc85d |
+ .long 0x7d6c6b57
|
|
|
7bc85d |
+ .long 0x7d8d7756
|
|
|
7bc85d |
+ .long 0x7dae7f57
|
|
|
7bc85d |
+ .long 0x7d4b6316
|
|
|
7bc85d |
+ .long 0x7d6c6b17
|
|
|
7bc85d |
+ .long 0x7d8d7716
|
|
|
7bc85d |
+ .long 0x7dae7f17
|
|
|
7bc85d |
+ .long 0x7e27d9f8
|
|
|
7bc85d |
+ .long 0x7e8a02f4
|
|
|
7bc85d |
+ .long 0x7e8a03f4
|
|
|
7bc85d |
+ .long 0x7e95b428
|
|
|
7bc85d |
+ .long 0x7e95b528
|
|
|
7bc85d |
+ .long 0x7d4056ee
|
|
|
7bc85d |
+ .long 0x7d4956ee
|
|
|
7bc85d |
+ .long 0xec802e9c
|
|
|
7bc85d |
+ .long 0xec802e9d
|
|
|
7bc85d |
+ .long 0xec802f9c
|
|
|
7bc85d |
+ .long 0xec802f9d
|
|
|
7bc85d |
+ .long 0xfc80291c
|
|
|
7bc85d |
+ .long 0xfc80291d
|
|
|
7bc85d |
+ .long 0xfc80291e
|
|
|
7bc85d |
+ .long 0xfc80291f
|
|
|
7bc85d |
+ .long 0xfc802f5c
|
|
|
7bc85d |
+ .long 0xfc802f5d
|
|
|
7bc85d |
+ .long 0xfc802f5e
|
|
|
7bc85d |
+ .long 0xfc802f5f
|
|
|
7bc85d |
+ .long 0xfc802f9c
|
|
|
7bc85d |
+ .long 0xfc802f9d
|
|
|
7bc85d |
+ .long 0xfc0a5900
|
|
|
7bc85d |
+ .long 0xff8a5900
|
|
|
7bc85d |
+ .long 0xfc005140
|
|
|
7bc85d |
+ .long 0xff805140
|
|
|
7bc85d |
+ .long 0x7e084a2c
|
|
|
7bc85d |
+ .long 0x7e0849ec
|
|
|
7bc85d |
+ .long 0xed406644
|
|
|
7bc85d |
+ .long 0xee80b645
|
|
|
7bc85d |
+ .long 0x7d4b6068
|
|
|
7bc85d |
+ .long 0x7d4b6068
|
|
|
7bc85d |
+ .long 0x7d4b6069
|
|
|
7bc85d |
+ .long 0x7e95b0e8
|
|
|
7bc85d |
+ .long 0x7e95b0e8
|
|
|
7bc85d |
+ .long 0x7e95b0e9
|
|
|
7bc85d |
+ .long 0x7d4b656d
|
|
|
7bc85d |
+ .long 0x7d4b65ad
|
|
|
7bc85d |
+ .long 0xfdc07830
|
|
|
7bc85d |
+ .long 0xfdc07831
|
|
|
7bc85d |
+ .long 0xedc07830
|
|
|
7bc85d |
+ .long 0xedc07831
|
|
|
7bc85d |
+ .long 0xfdc07834
|
|
|
7bc85d |
+ .long 0xfdc07835
|
|
|
7bc85d |
+ .long 0xedc07834
|
|
|
7bc85d |
+ .long 0xedc07835
|
|
|
7bc85d |
+ .long 0x7c43271e
|