aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2008-04-14 11:01:38 +0000
committerAlan Modra <amodra@gmail.com>2008-04-14 11:01:38 +0000
commit19a6653ce8c6d8a76586a54f3c0396063de5f987 (patch)
treeadaff4ba47526fb3747e9f0b91dc95d09578b936 /gas
parente2208220008a968fa98c03851a5e1eda4684ff2b (diff)
downloadbinutils-19a6653ce8c6d8a76586a54f3c0396063de5f987.zip
binutils-19a6653ce8c6d8a76586a54f3c0396063de5f987.tar.gz
binutils-19a6653ce8c6d8a76586a54f3c0396063de5f987.tar.bz2
ppc e500mc support
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-ppc.c9
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/ppc/e500mc.d51
-rw-r--r--gas/testsuite/gas/ppc/e500mc.s45
5 files changed, 115 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 84f1eee..0ca0906 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2008-04-14 Edmar Wienskoski <edmar@freescale.com>
+
+ * config/tc-ppc.c (parse_cpu): Handle "e500mc". Extend "e500" to
+ accept e500mc instructions.
+ (md_show_usage): Document -me500mc.
+
2008-04-11 Nick Clifton <nickc@redhat.com>
* listing.c (print_timestamp): Use localtime rather than
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index 5c1252c..ef54165 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -878,7 +878,13 @@ parse_cpu (const char *arg)
ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE
| PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK
| PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK
- | PPC_OPCODE_RFMCI);
+ | PPC_OPCODE_RFMCI | PPC_OPCODE_E500MC);
+ }
+ else if (strcmp (arg, "e500mc") == 0)
+ {
+ ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL
+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK
+ | PPC_OPCODE_RFMCI | PPC_OPCODE_E500MC);
}
else if (strcmp (arg, "spe") == 0)
{
@@ -1135,6 +1141,7 @@ PowerPC options:\n\
-maltivec generate code for AltiVec\n\
-me300 generate code for PowerPC e300 family\n\
-me500, -me500x2 generate code for Motorola e500 core complex\n\
+-me500mc, generate code for Freescale e500mc core complex\n\
-mspe generate code for Motorola SPE instructions\n\
-mregnames Allow symbolic names for registers\n\
-mno-regnames Do not allow symbolic names for registers\n"));
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 0677e8a..9aa3d8e 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-04-14 Edmar Wienskoski <edmar@freescale.com>
+
+ * gas/ppc/e500mc.s, gas/ppc/e500mc.d: New test.
+ * gas/ppc/ppc.exp: Run the new test
+
2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
* gas/lns/lns-big-delta.d: Updated.
diff --git a/gas/testsuite/gas/ppc/e500mc.d b/gas/testsuite/gas/ppc/e500mc.d
new file mode 100644
index 0000000..4ffaba8
--- /dev/null
+++ b/gas/testsuite/gas/ppc/e500mc.d
@@ -0,0 +1,51 @@
+#as: -mppc -me500mc
+#objdump: -dr -Me500mc
+#name: Power E500MC tests
+
+.*: +file format elf(32)?(64)?-powerpc.*
+
+Disassembly of section \.text:
+
+0+0000000 <start>:
+ 0: 4c 00 00 4e rfdi
+ 4: 4c 00 00 cc rfgi
+ 8: 4c 1f f9 8c dnh 0,1023
+ c: 4f e0 01 8c dnh 31,0
+ 10: 7c 09 57 be icbiep r9,r10
+ 14: 7c 00 69 dc msgclr r13
+ 18: 7c 00 71 9c msgsnd r14
+ 1c: 7c 00 00 7c wait
+ 20: 7f 9c e3 78 mdors
+ 24: 7c 00 02 1c ehpriv
+ 28: 7c 18 cb c6 dsn r24,r25
+ 2c: 7c 22 18 be lbepx r1,r2,r3
+ 30: 7c 85 32 3e lhepx r4,r5,r6
+ 34: 7c e8 48 3e lwepx r7,r8,r9
+ 38: 7d 4b 60 3a ldepx r10,r11,r12
+ 3c: 7d ae 7c be lfdepx r13,r14,r15
+ 40: 7e 11 91 be stbepx r16,r17,r18
+ 44: 7e 74 ab 3e sthepx r19,r20,r21
+ 48: 7e d7 c1 3e stwepx r22,r23,r24
+ 4c: 7f 3a d9 3a stdepx r25,r26,r27
+ 50: 7f 9d f5 be stfdepx r28,r29,r30
+ 54: 7c 01 14 06 lbdx r0,r1,r2
+ 58: 7d 8d 74 46 lhdx r12,r13,r14
+ 5c: 7c 64 2c 86 lwdx r3,r4,r5
+ 60: 7f 5b e6 46 lfddx f26,r27,r28
+ 64: 7d f0 8c c6 lddx r15,r16,r17
+ 68: 7c c7 45 06 stbdx r6,r7,r8
+ 6c: 7e 53 a5 46 sthdx r18,r19,r20
+ 70: 7d 2a 5d 86 stwdx r9,r10,r11
+ 74: 7f be ff 46 stfddx f29,r30,r31
+ 78: 7e b6 bd c6 stddx r21,r22,r23
+ 7c: 7c 20 0d ec dcbal r0,r1
+ 80: 7c 26 3f ec dcbzl r6,r7
+ 84: 7c 1f 00 7e dcbstep r31,r0
+ 88: 7c 01 10 fe dcbfep r1,r2
+ 8c: 7c 64 29 fe dcbtstep r3,r4,r5
+ 90: 7c c7 42 7e dcbtep r6,r7,r8
+ 94: 7c 0b 67 fe dcbzep r11,r12
+ 98: 7c 00 06 26 tlbilx 0,0,r0
+ 9c: 7c 20 06 26 tlbilx 1,0,r0
+ a0: 7c 62 1e 26 tlbilx 3,r2,r3
+ a4: 7c 64 2e 26 tlbilx 3,r4,r5
diff --git a/gas/testsuite/gas/ppc/e500mc.s b/gas/testsuite/gas/ppc/e500mc.s
new file mode 100644
index 0000000..4b20c94
--- /dev/null
+++ b/gas/testsuite/gas/ppc/e500mc.s
@@ -0,0 +1,45 @@
+# Power E500MC tests
+ .section ".text"
+start:
+ rfdi
+ rfgi
+ dnh 0, 1023
+ dnh 31, 0
+ icbiep 9, 10
+ msgclr 13
+ msgsnd 14
+ wait
+ mdors
+ ehpriv
+ dsn 24, 25
+ lbepx 1, 2, 3
+ lhepx 4, 5, 6
+ lwepx 7, 8, 9
+ ldepx 10, 11, 12
+ lfdepx 13, 14, 15
+ stbepx 16, 17, 18
+ sthepx 19, 20, 21
+ stwepx 22, 23, 24
+ stdepx 25, 26, 27
+ stfdepx 28, 29, 30
+ lbdx 0, 1, 2
+ lhdx 12, 13, 14
+ lwdx 3, 4, 5
+ lfddx 26, 27, 28
+ lddx 15, 16, 17
+ stbdx 6, 7, 8
+ sthdx 18, 19, 20
+ stwdx 9, 10, 11
+ stfddx 29, 30, 31
+ stddx 21, 22, 23
+ dcbal 0, 1
+ dcbzl 6, 7
+ dcbstep 31, 0
+ dcbfep 1, 2
+ dcbtstep 3, 4, 5
+ dcbtep 6, 7, 8
+ dcbzep 11, 12
+ tlbilxlpid
+ tlbilxpid
+ tlbilxva 2, 3
+ tlbilx 3, 4, 5