aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2010-06-14 14:48:05 +0000
committerAlan Modra <amodra@gmail.com>2010-06-14 14:48:05 +0000
commite01d869a3be23aa63825fa1a10e894c5aa3c31a9 (patch)
treef2f2b371b7366b4f3a755020b84ff16b520f2f75 /gas
parent92b729071eddfad07aa5df4f05fc1d3b7fca6923 (diff)
downloadbinutils-e01d869a3be23aa63825fa1a10e894c5aa3c31a9.zip
binutils-e01d869a3be23aa63825fa1a10e894c5aa3c31a9.tar.gz
binutils-e01d869a3be23aa63825fa1a10e894c5aa3c31a9.tar.bz2
gas/
* config/tc-ppc.c (md_assemble): Emit APUinfo section for PPC_OPCODE_E500. gas/testsuite/ * gas/ppc/e500.s: Add eieio, mbar and lwsync * gas/ppc/e500.d: Likewise. include/opcode/ * ppc.h (PPC_OPCODE_E500): Define. opcodes/ * ppc-dis.c (ppc_opts): Remove PPC_OPCODE_E500MC from e500 and e500x2. Add PPC_OPCODE_E500 to e500 and e500x2 * ppc-opc.c (powerpc_opcodes): Deprecate all opcodes on EFS which touch floating point regs and are enabled by COM, PPC or PPCCOM. Treat sync as msync on e500. Treat eieio as mbar 1 on e500. Treat lwsync as msync on e500.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-ppc.c2
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/ppc/e500.d5
-rw-r--r--gas/testsuite/gas/ppc/e500.s9
5 files changed, 25 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 894b0ab..821955e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-14 Alan Modra <amodra@gmail.com>
+
+ * config/tc-ppc.c (md_assemble): Emit APUinfo section for
+ PPC_OPCODE_E500.
+
2010-06-11 Jan Beulich <jbeulich@novell.com>
* config/tc-i386.c (md_parse_option): Ignore impossible processor
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index b79f214..d36bbc9 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -2908,7 +2908,7 @@ md_assemble (char *str)
#ifdef OBJ_ELF
/* Do we need/want a APUinfo section? */
- if ((ppc_cpu & PPC_OPCODE_E500MC) != 0)
+ if ((ppc_cpu & (PPC_OPCODE_E500 | PPC_OPCODE_E500MC)) != 0)
{
/* These are all version "1". */
if (opcode->flags & PPC_OPCODE_SPE)
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index a1affb30..b4583a1 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-14 Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+
+ * gas/ppc/e500.s: Add eieio, mbar and lwsync
+ * gas/ppc/e500.d: Likewise.
+
2010-06-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* gas/arm/vldm-arm.d: New test.
diff --git a/gas/testsuite/gas/ppc/e500.d b/gas/testsuite/gas/ppc/e500.d
index d338d38..19b17db 100644
--- a/gas/testsuite/gas/ppc/e500.d
+++ b/gas/testsuite/gas/ppc/e500.d
@@ -49,3 +49,8 @@ Disassembly of section \.text:
9c: 10 a0 22 f7 efdctsf r5,r4
a0: 10 a0 22 f6 efdctuf r5,r4
a4: 10 a0 22 ef efdcfs r5,r4
+ a8: 7c 20 06 ac mbar 1
+ ac: 7c 00 06 ac mbar
+ b0: 7c 20 06 ac mbar 1
+ b4: 7c 00 04 ac msync
+ b8: 7c 00 04 ac msync
diff --git a/gas/testsuite/gas/ppc/e500.s b/gas/testsuite/gas/ppc/e500.s
index e78f251..c506078 100644
--- a/gas/testsuite/gas/ppc/e500.s
+++ b/gas/testsuite/gas/ppc/e500.s
@@ -45,3 +45,12 @@ start:
efdctsf 5,4
efdctuf 5,4
efdcfs 5,4
+
+ # eieio handling
+ eieio
+ mbar
+ mbar 1
+
+ #sync and lwsync handling
+ sync
+ lwsync