aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Bergner <bergner@vnet.ibm.com>2015-05-14 20:57:50 -0500
committerPeter Bergner <bergner@vnet.ibm.com>2015-05-14 21:02:50 -0500
commit4bc0608a8b693f033555aa5705fdd5fc44cb9a9a (patch)
treefcf2031635c4f9a600be59264ecbccae0010bd83
parent49a84e1373168f743fd6191035043389f0198a14 (diff)
downloadgdb-4bc0608a8b693f033555aa5705fdd5fc44cb9a9a.zip
gdb-4bc0608a8b693f033555aa5705fdd5fc44cb9a9a.tar.gz
gdb-4bc0608a8b693f033555aa5705fdd5fc44cb9a9a.tar.bz2
Fix some PPC assembler errors.
Remove the wait instructions for server processors, since they were never implemented. Also add the extra operands added to the tlbie and slbia instructions with ISA 2.06 and ISA 2.05 respectively. binutils/ * MAINTAINERS: Add myself as PPC maintainer. opcodes/ * ppc-opc.c (IH) New define. (powerpc_opcodes) <wait>: Do not enable for POWER7. <tlbie>: Add RS operand for POWER7. <slbia>: Add IH operand for POWER6. gas/testsuite/ * gas/ppc/power4.d: Add a slbia test. * gas/ppc/power4.s: Likewise. * gas/ppc/power6.d: Add slbia and tlbie tests. * gas/ppc/power6.s: Likewise. * gas/ppc/power7.d: Remove wait tests. Add a tlbie test. * gas/ppc/power7.s: Likewise.
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/MAINTAINERS1
-rw-r--r--gas/testsuite/ChangeLog9
-rw-r--r--gas/testsuite/gas/ppc/power4.d3
-rw-r--r--gas/testsuite/gas/ppc/power4.s1
-rw-r--r--gas/testsuite/gas/ppc/power6.d6
-rw-r--r--gas/testsuite/gas/ppc/power6.s6
-rw-r--r--gas/testsuite/gas/ppc/power7.d7
-rw-r--r--gas/testsuite/gas/ppc/power7.s7
-rw-r--r--opcodes/ChangeLog7
-rw-r--r--opcodes/ppc-opc.c11
11 files changed, 50 insertions, 12 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index db01e39..84beb7e 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2015-05-14 Peter Bergner <bergner@vnet.ibm.com>
+
+ * MAINTAINERS: Add myself as PPC maintainer.
+
2015-05-14 H.J. Lu <hongjiu.lu@intel.com>
* readelf.c (uncompress_section_contents): Add a parameter for
diff --git a/binutils/MAINTAINERS b/binutils/MAINTAINERS
index 41bc92d..37f4601 100644
--- a/binutils/MAINTAINERS
+++ b/binutils/MAINTAINERS
@@ -119,6 +119,7 @@ responsibility among the other maintainers.
OR1K Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
PPC Geoff Keating <geoffk@geoffk.org>
PPC Alan Modra <amodra@gmail.com>
+ PPC Peter Bergner <bergner@vnet.ibm.com>
PPC vector ext Aldy Hernandez <aldyh@redhat.com>
RL78 DJ Delorie <dj@redhat.com>
RX DJ Delorie <dj@redhat.com>
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 5f3f43d..dab5fcf 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2015-05-14 Peter Bergner <bergner@vnet.ibm.com>
+
+ * gas/ppc/power4.d: Add a slbia test.
+ * gas/ppc/power4.s: Likewise.
+ * gas/ppc/power6.d: Add slbia and tlbie tests.
+ * gas/ppc/power6.s: Likewise.
+ * gas/ppc/power7.d: Remove wait tests. Add a tlbie test.
+ * gas/ppc/power7.s: Likewise.
+
2015-05-13 Max Filippov <jcmvbkbc@gmail.com>
* gas/xtensa/trampoline.s: Add regression testcase.
diff --git a/gas/testsuite/gas/ppc/power4.d b/gas/testsuite/gas/ppc/power4.d
index fa495a1..cd71245 100644
--- a/gas/testsuite/gas/ppc/power4.d
+++ b/gas/testsuite/gas/ppc/power4.d
@@ -10,7 +10,7 @@ start address 0x0+
Sections:
Idx Name +Size +VMA +LMA +File off +Algn
- +0 \.text +0+c8 +0+ +0+ +.*
+ +0 \.text +0+cc +0+ +0+ +.*
+CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
+1 \.data +0+20 +0+ +0+ +.*
+CONTENTS, ALLOC, LOAD, DATA
@@ -98,3 +98,4 @@ Disassembly of section \.text:
.*: (f8 40 00 12|12 00 40 f8) stq r2,16\(0\)
.*: (f8 05 00 12|12 00 05 f8) stq r0,16\(r5\)
.*: (f8 45 00 12|12 00 45 f8) stq r2,16\(r5\)
+.*: (7c 00 03 e4|e4 03 00 7c) slbia
diff --git a/gas/testsuite/gas/ppc/power4.s b/gas/testsuite/gas/ppc/power4.s
index 7a60f04..49423a1 100644
--- a/gas/testsuite/gas/ppc/power4.s
+++ b/gas/testsuite/gas/ppc/power4.s
@@ -71,6 +71,7 @@ dsym1:
stq 2,16(0)
stq 0,16(5)
stq 2,16(5)
+ slbia
.section ".data"
usym0: .llong 0xcafebabe
diff --git a/gas/testsuite/gas/ppc/power6.d b/gas/testsuite/gas/ppc/power6.d
index e214501..9ba0687 100644
--- a/gas/testsuite/gas/ppc/power6.d
+++ b/gas/testsuite/gas/ppc/power6.d
@@ -71,4 +71,10 @@ Disassembly of section \.text:
f4: (7d 4b 60 94|94 60 4b 7d) addg6s r10,r11,r12
f8: (60 21 00 00|00 00 21 60) ori r1,r1,0
fc: (60 21 00 00|00 00 21 60) ori r1,r1,0
+.*: (7c 00 03 e4|e4 03 00 7c) slbia
+.*: (7c 00 03 e4|e4 03 00 7c) slbia
+.*: (7c e0 03 e4|e4 03 e0 7c) slbia 7
+.*: (7c 00 52 64|64 52 00 7c) tlbie r10
+.*: (7c 00 52 64|64 52 00 7c) tlbie r10
+.*: (7c 20 52 64|64 52 20 7c) tlbie r10,1
#pass
diff --git a/gas/testsuite/gas/ppc/power6.s b/gas/testsuite/gas/ppc/power6.s
index 21bd66e..d460fba 100644
--- a/gas/testsuite/gas/ppc/power6.s
+++ b/gas/testsuite/gas/ppc/power6.s
@@ -66,3 +66,9 @@ start:
addg6s 10,11,12
ori 1,1,0
.p2align 4,,15
+ slbia
+ slbia 0
+ slbia 7
+ tlbie 10
+ tlbie 10,0
+ tlbie 10,1
diff --git a/gas/testsuite/gas/ppc/power7.d b/gas/testsuite/gas/ppc/power7.d
index bed98ce..a2e6df4 100644
--- a/gas/testsuite/gas/ppc/power7.d
+++ b/gas/testsuite/gas/ppc/power7.d
@@ -29,8 +29,6 @@ Disassembly of section \.text:
.*: (f1 6c 67 87|87 67 6c f1) xvmovdp vs43,vs44
.*: (f0 64 2f 80|80 2f 64 f0) xvcpsgndp vs3,vs4,vs5
.*: (f1 6c 6f 87|87 6f 6c f1) xvcpsgndp vs43,vs44,vs45
-.*: (7c 00 00 7c|7c 00 00 7c) wait
-.*: (7c 00 00 7c|7c 00 00 7c) wait
.*: (4c 00 03 24|24 03 00 4c) doze
.*: (4c 00 03 64|64 03 00 4c) nap
.*: (4c 00 03 a4|a4 03 00 4c) sleep
@@ -95,12 +93,12 @@ Disassembly of section \.text:
.*: (ed c0 78 34|34 78 c0 ed) frsqrtes f14,f15
.*: (ed c0 78 35|35 78 c0 ed) frsqrtes\. f14,f15
.*: (7c 43 27 1e|1e 27 43 7c) isel r2,r3,r4,28
+.*: (7f 7b db 78|78 db 7b 7f) yield
+.*: (7f 7b db 78|78 db 7b 7f) yield
.*: (60 42 00 00|00 00 42 60) ori r2,r2,0
.*: (60 00 00 00|00 00 00 60) nop
.*: (60 00 00 00|00 00 00 60) nop
.*: (60 42 00 00|00 00 42 60) ori r2,r2,0
-.*: (7f 7b db 78|78 db 7b 7f) yield
-.*: (7f 7b db 78|78 db 7b 7f) yield
.*: (7f bd eb 78|78 eb bd 7f) mdoio
.*: (7f bd eb 78|78 eb bd 7f) mdoio
.*: (7f de f3 78|78 f3 de 7f) mdoom
@@ -109,4 +107,5 @@ Disassembly of section \.text:
.*: (7d 62 e2 a6|a6 e2 62 7d) mfppr32 r11
.*: (7d 80 e3 a6|a6 e3 80 7d) mtppr r12
.*: (7d a2 e3 a6|a6 e3 a2 7d) mtppr32 r13
+.*: (7d 60 52 64|64 52 60 7d) tlbie r10,r11
#pass
diff --git a/gas/testsuite/gas/ppc/power7.s b/gas/testsuite/gas/ppc/power7.s
index e76884e..b811112 100644
--- a/gas/testsuite/gas/ppc/power7.s
+++ b/gas/testsuite/gas/ppc/power7.s
@@ -22,8 +22,6 @@ power7:
xvcpsgndp 43,44,44
xvcpsgndp 3,4,5
xvcpsgndp 43,44,45
- wait
- wait 0
doze
nap
sleep
@@ -88,10 +86,10 @@ power7:
frsqrtes 14,15
frsqrtes. 14,15
isel 2,3,4,28
- ori 2,2,0
- .p2align 4,,15
yield
or 27,27,27
+ ori 2,2,0
+ .p2align 4,,15
mdoio
or 29,29,29
mdoom
@@ -100,3 +98,4 @@ power7:
mfppr32 11
mtppr 12
mtppr32 13
+ tlbie 10,11
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 08ca92d..dbce2d3 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,10 @@
+2015-05-14 Peter Bergner <bergner@vnet.ibm.com>
+
+ * ppc-opc.c (IH) New define.
+ (powerpc_opcodes) <wait>: Do not enable for POWER7.
+ <tlbie>: Add RS operand for POWER7.
+ <slbia>: Add IH operand for POWER6.
+
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
* opcodes/i386-opc.tbl (call): Remove Disp16|Disp32 from 64-bit
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index afd8382..57a0973 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -866,6 +866,9 @@ const struct powerpc_operand powerpc_operands[] =
#define ERAT_T UIM + 1
{ 0x7, 21, NULL, NULL, 0 },
+
+#define IH ERAT_T + 1
+ { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
};
const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
@@ -4486,7 +4489,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, PPCNONE, {0}},
{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, PPCNONE, {0}},
-{"wait", X(31,62), XWC_MASK, POWER7|E500MC|PPCA2|PPCVLE, PPCNONE, {WC}},
+{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|PPCVLE, PPCNONE, {WC}},
{"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2|PPCVLE, PPCNONE, {RA0, RB}},
@@ -4780,7 +4783,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"mfbhrbe", X(31,302), X_MASK, POWER8, PPCNONE, {RT, BHRBE}},
-{"tlbie", X(31,306), XRTLRA_MASK, PPC, TITAN, {RB, L}},
+{"tlbie", X(31,306), XRA_MASK, POWER7, TITAN, {RB, RS}},
+{"tlbie", X(31,306), XRTLRA_MASK, PPC, POWER7|TITAN, {RB, L}},
{"tlbi", X(31,306), XRT_MASK, POWER, PPCNONE, {RA0, RB}},
{"eciwx", X(31,310), X_MASK, PPC, TITAN, {RT, RA0, RB}},
@@ -5372,7 +5376,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
-{"slbia", X(31,498), 0xffffffff, PPC64, PPCNONE, {0}},
+{"slbia", X(31,498), 0xff1fffff, POWER6, PPCNONE, {IH}},
+{"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}},
{"cli", X(31,502), XRB_MASK, POWER, PPCNONE, {RT, RA}},