From aea77599d0dbdb7c7ca87e52b86184cf67e71e49 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 9 Mar 2012 23:39:06 +0000 Subject: include/opcode/ * ppc.h: Add PPC_OPCODE_ALTIVEC2, PPC_OPCODE_E6500, PPC_OPCODE_TMR. opcodes/ * ppc-dis.c (ppc_opts): Add entries for "e5500" and "e6500". * ppc-opc.c (insert_ls, TMR, ESYNC, XSYNCLE_MASK): New. (PPCVEC2, PPCTMR, E6500): New short names. (powerpc_opcodes): Add vabsdub, vabsduh, vabsduw, dni, mvidsplt, mviwsplt, icblq., mftmr, mttmr, dcblq., miso, lvexbx, lvexhx, lvexwx, stvexbx, stvexhx, stvexwx, lvepx, lvepxl, stvepx, stvepxl, lvtrx, lvtrxl, lvtlx, lvtlxl, stvfrx, stvfrxl, stvflx, stvflxl, lvswx, lvswxl, stvswx, stvswxl, lvsm mnemonics. Accept LS, ESYNC optional operands on sync instruction for E6500 target. bfd/ * archures.c: Add bfd_mach_ppc_e5500 and bfd_mach_ppc_e6500. * bfd-in2.h: Regenerate. * cpu-powerpc.c (bfd_powerpc_archs): Add entryies for bfd_mach_ppc_e5500 and bfd_mach_ppc_e6500. gas/ * config/tc-ppc.c (md_show_usage): Document -me5500 and -me6500. (ppc_handle_align): Add termination nop opcode for e500mc family. * doc/as.texinfo: Document options -me5500 and -me6500. * doc/c-ppc.texi: Likewise. gas/testsuite/ * gas/ppc/e500mc64_nop.s: New test case for e500mc family termination nops. * gas/ppc/e500mc64_nop.d: Likewise. * gas/ppc/e5500_nop.s: Likewise. * gas/ppc/e5500_nop.d: Likewise. * gas/ppc/e6500_nop.s: Likewise. * gas/ppc/e6500_nop.d: Likewise. * gas/ppc/e6500.s: New. * gas/ppc/e6500.d: Likewise. * gas/ppc/ppc.exp: Run e6500, e500mc64_nop, e5500_nop, and e6500_nop. --- gas/testsuite/ChangeLog | 13 +++++++ gas/testsuite/gas/ppc/e500mc64_nop.d | 13 +++++++ gas/testsuite/gas/ppc/e500mc64_nop.s | 5 +++ gas/testsuite/gas/ppc/e5500_nop.d | 13 +++++++ gas/testsuite/gas/ppc/e5500_nop.s | 5 +++ gas/testsuite/gas/ppc/e6500.d | 75 ++++++++++++++++++++++++++++++++++++ gas/testsuite/gas/ppc/e6500.s | 69 +++++++++++++++++++++++++++++++++ gas/testsuite/gas/ppc/e6500_nop.d | 13 +++++++ gas/testsuite/gas/ppc/e6500_nop.s | 5 +++ gas/testsuite/gas/ppc/ppc.exp | 4 ++ 10 files changed, 215 insertions(+) create mode 100644 gas/testsuite/gas/ppc/e500mc64_nop.d create mode 100644 gas/testsuite/gas/ppc/e500mc64_nop.s create mode 100644 gas/testsuite/gas/ppc/e5500_nop.d create mode 100644 gas/testsuite/gas/ppc/e5500_nop.s create mode 100644 gas/testsuite/gas/ppc/e6500.d create mode 100644 gas/testsuite/gas/ppc/e6500.s create mode 100644 gas/testsuite/gas/ppc/e6500_nop.d create mode 100644 gas/testsuite/gas/ppc/e6500_nop.s (limited to 'gas/testsuite') diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 19dd01e..718f942 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,16 @@ +2012-03-10 Edmar Wienskoski + + * gas/ppc/e500mc64_nop.s: New test case for e500mc family + termination nops. + * gas/ppc/e500mc64_nop.d: Likewise. + * gas/ppc/e5500_nop.s: Likewise. + * gas/ppc/e5500_nop.d: Likewise. + * gas/ppc/e6500_nop.s: Likewise. + * gas/ppc/e6500_nop.d: Likewise. + * gas/ppc/e6500.s: New. + * gas/ppc/e6500.d: Likewise. + * gas/ppc/ppc.exp: Run e6500, e500mc64_nop, e5500_nop, and e6500_nop. + 2012-03-08 Andreas Krebbel * gas/s390/esa-g5.d: Move length field to the second operand. diff --git a/gas/testsuite/gas/ppc/e500mc64_nop.d b/gas/testsuite/gas/ppc/e500mc64_nop.d new file mode 100644 index 0000000..9cee81f --- /dev/null +++ b/gas/testsuite/gas/ppc/e500mc64_nop.d @@ -0,0 +1,13 @@ +#as: -mppc -me500mc64 +#objdump: -dr -Me500mc64 +#name: Power E500MC64 nop tests + +.*: +file format elf(32)?(64)?-powerpc.* + +Disassembly of section \.text: + +0+00 : + 0: 60 00 00 00 nop + 4: 60 00 00 00 nop + 8: 60 00 00 00 nop + c: 60 00 00 00 nop diff --git a/gas/testsuite/gas/ppc/e500mc64_nop.s b/gas/testsuite/gas/ppc/e500mc64_nop.s new file mode 100644 index 0000000..b63055e --- /dev/null +++ b/gas/testsuite/gas/ppc/e500mc64_nop.s @@ -0,0 +1,5 @@ +# Power E500MC64 nop tests + .section ".text" +start: + nop + .p2align 4,,15 diff --git a/gas/testsuite/gas/ppc/e5500_nop.d b/gas/testsuite/gas/ppc/e5500_nop.d new file mode 100644 index 0000000..c76bba5 --- /dev/null +++ b/gas/testsuite/gas/ppc/e5500_nop.d @@ -0,0 +1,13 @@ +#as: -mppc -me5500 +#objdump: -dr -Me5500 +#name: Power E5500 nop tests + +.*: +file format elf(32)?(64)?-powerpc.* + +Disassembly of section \.text: + +0+00 : + 0: 60 00 00 00 nop + 4: 60 00 00 00 nop + 8: 60 00 00 00 nop + c: 60 00 00 00 nop diff --git a/gas/testsuite/gas/ppc/e5500_nop.s b/gas/testsuite/gas/ppc/e5500_nop.s new file mode 100644 index 0000000..f57b8e6 --- /dev/null +++ b/gas/testsuite/gas/ppc/e5500_nop.s @@ -0,0 +1,5 @@ +# Power E5500 nop tests + .section ".text" +start: + nop + .p2align 4,,15 diff --git a/gas/testsuite/gas/ppc/e6500.d b/gas/testsuite/gas/ppc/e6500.d new file mode 100644 index 0000000..892f144 --- /dev/null +++ b/gas/testsuite/gas/ppc/e6500.d @@ -0,0 +1,75 @@ +#as: -mppc -me6500 +#objdump: -dr -Me6500 +#name: Power E6500 tests + +.*: +file format elf(32)?(64)?-powerpc.* + +Disassembly of section \.text: + +0+00 : + 0: 10 01 10 c0 vabsdub v0,v1,v2 + 4: 10 01 11 00 vabsduh v0,v1,v2 + 8: 10 01 11 40 vabsduw v0,v1,v2 + c: 7c 01 10 dc mvidsplt v0,r1,r2 + 10: 7c 01 11 1c mviwsplt v0,r1,r2 + 14: 7c 00 12 0a lvexbx v0,0,r2 + 18: 7c 01 12 0a lvexbx v0,r1,r2 + 1c: 7c 00 12 4a lvexhx v0,0,r2 + 20: 7c 01 12 4a lvexhx v0,r1,r2 + 24: 7c 00 12 8a lvexwx v0,0,r2 + 28: 7c 01 12 8a lvexwx v0,r1,r2 + 2c: 7c 00 13 0a stvexbx v0,0,r2 + 30: 7c 01 13 0a stvexbx v0,r1,r2 + 34: 7c 00 13 4a stvexhx v0,0,r2 + 38: 7c 01 13 4a stvexhx v0,r1,r2 + 3c: 7c 00 13 8a stvexwx v0,0,r2 + 40: 7c 01 13 8a stvexwx v0,r1,r2 + 44: 7c 00 12 4e lvepx v0,0,r2 + 48: 7c 01 12 4e lvepx v0,r1,r2 + 4c: 7c 00 12 0e lvepxl v0,0,r2 + 50: 7c 01 12 0e lvepxl v0,r1,r2 + 54: 7c 00 16 4e stvepx v0,0,r2 + 58: 7c 01 16 4e stvepx v0,r1,r2 + 5c: 7c 00 16 0e stvepxl v0,0,r2 + 60: 7c 01 16 0e stvepxl v0,r1,r2 + 64: 7c 00 14 8a lvtlx v0,0,r2 + 68: 7c 01 14 8a lvtlx v0,r1,r2 + 6c: 7c 00 16 8a lvtlxl v0,0,r2 + 70: 7c 01 16 8a lvtlxl v0,r1,r2 + 74: 7c 00 14 4a lvtrx v0,0,r2 + 78: 7c 01 14 4a lvtrx v0,r1,r2 + 7c: 7c 00 16 4a lvtrxl v0,0,r2 + 80: 7c 01 16 4a lvtrxl v0,r1,r2 + 84: 7c 00 15 8a stvflx v0,0,r2 + 88: 7c 01 15 8a stvflx v0,r1,r2 + 8c: 7c 00 17 8a stvflxl v0,0,r2 + 90: 7c 01 17 8a stvflxl v0,r1,r2 + 94: 7c 00 15 4a stvfrx v0,0,r2 + 98: 7c 01 15 4a stvfrx v0,r1,r2 + 9c: 7c 00 17 4a stvfrxl v0,0,r2 + a0: 7c 01 17 4a stvfrxl v0,r1,r2 + a4: 7c 00 14 ca lvswx v0,0,r2 + a8: 7c 01 14 ca lvswx v0,r1,r2 + ac: 7c 00 16 ca lvswxl v0,0,r2 + b0: 7c 01 16 ca lvswxl v0,r1,r2 + b4: 7c 00 15 ca stvswx v0,0,r2 + b8: 7c 01 15 ca stvswx v0,r1,r2 + bc: 7c 00 17 ca stvswxl v0,0,r2 + c0: 7c 01 17 ca stvswxl v0,r1,r2 + c4: 7c 00 16 0a lvsm v0,0,r2 + c8: 7c 01 16 0a lvsm v0,r1,r2 + cc: 7f 5a d3 78 miso + d0: 7c 00 04 ac sync + d4: 7c 00 04 ac sync + d8: 7c 20 04 ac lwsync + dc: 7c 00 04 ac sync + e0: 7c 07 04 ac sync 0,7 + e4: 7c 28 04 ac sync 1,8 + e8: 7c 00 00 c3 dni 0,0 + ec: 7f ff 00 c3 dni 31,31 + f0: 7c 40 0b 4d dcblq. 2,0,r1 + f4: 7c 43 0b 4d dcblq. 2,r3,r1 + f8: 7c 40 09 8d icblq. 2,0,r1 + fc: 7c 43 09 8d icblq. 2,r3,r1 + 100: 7c 10 02 dc mftmr r0,16 + 104: 7c 10 03 dc mttmr 16,r0 diff --git a/gas/testsuite/gas/ppc/e6500.s b/gas/testsuite/gas/ppc/e6500.s new file mode 100644 index 0000000..d80a9a1 --- /dev/null +++ b/gas/testsuite/gas/ppc/e6500.s @@ -0,0 +1,69 @@ +# Power E6500 tests + .section ".text" +start: + vabsdub 0, 1, 2 + vabsduh 0, 1, 2 + vabsduw 0, 1, 2 + mvidsplt 0, 1, 2 + mviwsplt 0, 1, 2 + lvexbx 0, 0, 2 + lvexbx 0, 1, 2 + lvexhx 0, 0, 2 + lvexhx 0, 1, 2 + lvexwx 0, 0, 2 + lvexwx 0, 1, 2 + stvexbx 0, 0, 2 + stvexbx 0, 1, 2 + stvexhx 0, 0, 2 + stvexhx 0, 1, 2 + stvexwx 0, 0, 2 + stvexwx 0, 1, 2 + lvepx 0, 0, 2 + lvepx 0, 1, 2 + lvepxl 0, 0, 2 + lvepxl 0, 1, 2 + stvepx 0, 0, 2 + stvepx 0, 1, 2 + stvepxl 0, 0, 2 + stvepxl 0, 1, 2 + lvtlx 0, 0, 2 + lvtlx 0, 1, 2 + lvtlxl 0, 0, 2 + lvtlxl 0, 1, 2 + lvtrx 0, 0, 2 + lvtrx 0, 1, 2 + lvtrxl 0, 0, 2 + lvtrxl 0, 1, 2 + stvflx 0, 0, 2 + stvflx 0, 1, 2 + stvflxl 0, 0, 2 + stvflxl 0, 1, 2 + stvfrx 0, 0, 2 + stvfrx 0, 1, 2 + stvfrxl 0, 0, 2 + stvfrxl 0, 1, 2 + lvswx 0, 0, 2 + lvswx 0, 1, 2 + lvswxl 0, 0, 2 + lvswxl 0, 1, 2 + stvswx 0, 0, 2 + stvswx 0, 1, 2 + stvswxl 0, 0, 2 + stvswxl 0, 1, 2 + lvsm 0, 0, 2 + lvsm 0, 1, 2 + miso + sync + sync 0,0 + sync 1,0 + sync 2,0 + sync 3,7 + sync 3,8 + dni 0,0 + dni 31,31 + dcblq. 2,0,1 + dcblq. 2,3,1 + icblq. 2,0,1 + icblq. 2,3,1 + mftmr 0,16 + mttmr 16,0 diff --git a/gas/testsuite/gas/ppc/e6500_nop.d b/gas/testsuite/gas/ppc/e6500_nop.d new file mode 100644 index 0000000..875821c --- /dev/null +++ b/gas/testsuite/gas/ppc/e6500_nop.d @@ -0,0 +1,13 @@ +#as: -mppc -me6500 +#objdump: -dr -Me6500 +#name: Power E6500 nop tests + +.*: +file format elf(32)?(64)?-powerpc.* + +Disassembly of section \.text: + +0+00 : + 0: 60 00 00 00 nop + 4: 60 00 00 00 nop + 8: 60 00 00 00 nop + c: 60 00 00 00 nop diff --git a/gas/testsuite/gas/ppc/e6500_nop.s b/gas/testsuite/gas/ppc/e6500_nop.s new file mode 100644 index 0000000..7538a09 --- /dev/null +++ b/gas/testsuite/gas/ppc/e6500_nop.s @@ -0,0 +1,5 @@ +# Power E6500 nop tests + .section ".text" +start: + nop + .p2align 4,,15 diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp index 3db0ade..ecff355 100644 --- a/gas/testsuite/gas/ppc/ppc.exp +++ b/gas/testsuite/gas/ppc/ppc.exp @@ -42,6 +42,10 @@ if { [istarget powerpc*-*-*] } then { run_list_test "range" "-a32" run_dump_test "ppc750ps" run_dump_test "e500mc" + run_dump_test "e6500" + run_dump_test "e500mc64_nop" + run_dump_test "e5500_nop" + run_dump_test "e6500_nop" run_dump_test "a2" run_dump_test "cell" run_dump_test "common" -- cgit v1.1