diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-ppc.c | 9 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/ppc/e500mc.d | 51 | ||||
-rw-r--r-- | gas/testsuite/gas/ppc/e500mc.s | 45 |
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 |