aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2010-02-08 01:59:38 +0000
committerAlan Modra <amodra@gmail.com>2010-02-08 01:59:38 +0000
commitce3d2015b21ba6aa3d2bb0b0ca88101cec56a7be (patch)
tree0555f5021de308066dc8d7210e9e405c3f2c97b2 /gas
parent06a162cf6325616071ef4c2fc19e8c4d05c64ac1 (diff)
downloadfsf-binutils-gdb-ce3d2015b21ba6aa3d2bb0b0ca88101cec56a7be.zip
fsf-binutils-gdb-ce3d2015b21ba6aa3d2bb0b0ca88101cec56a7be.tar.gz
fsf-binutils-gdb-ce3d2015b21ba6aa3d2bb0b0ca88101cec56a7be.tar.bz2
include/
* opcode/ppc.h (PPC_OPCODE_TITAN): Define. bfd/ * archures.c (bfd_mach_ppc_titan): Define. * bfd-in2.h: Regenerate. * cpu-powerpc.c (bfd_powerpc_archs): Add titan entry. opcodes/ * ppc-dis.c (ppc_opts): Add titan entry. * ppc-opc.c (TITAN, MULHW): Define. (powerpc_opcodes): Support AppliedMicro Titan core (APM83xxx). gas/ * config/tc-ppc.c (md_show_usage): Mention -mtitan. Don't use tabs. (ppc_mach): Handle titan. * doc/c-ppc.texi: Mention -mtitan. gas/testsuite/ * gas/ppc/titan.d, * gas/ppc/titan.s: New test. * gas/ppc/ppc.exp: Run it.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-ppc.c89
-rw-r--r--gas/doc/c-ppc.texi5
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/ppc/ppc.exp1
-rw-r--r--gas/testsuite/gas/ppc/titan.d267
-rw-r--r--gas/testsuite/gas/ppc/titan.s261
7 files changed, 590 insertions, 44 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index dded370..0656925 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2010-02-08 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
+
+ * config/tc-ppc.c (md_show_usage): Mention -mtitan. Don't use tabs.
+ (ppc_mach): Handle titan.
+ * doc/c-ppc.texi: Mention -mtitan.
+
2010-02-05 Joseph Myers <joseph@codesourcery.com>
* Makefile.am (CPU_TYPES, OBJ_FORMATS, CPU_OBJ_VALID,
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index 212f822..3f366fe 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -1178,57 +1178,58 @@ md_show_usage (FILE *stream)
{
fprintf (stream, _("\
PowerPC options:\n\
--a32 generate ELF32/XCOFF32\n\
--a64 generate ELF64/XCOFF64\n\
--u ignored\n\
--mpwrx, -mpwr2 generate code for POWER/2 (RIOS2)\n\
--mpwr generate code for POWER (RIOS1)\n\
--m601 generate code for PowerPC 601\n\
+-a32 generate ELF32/XCOFF32\n\
+-a64 generate ELF64/XCOFF64\n\
+-u ignored\n\
+-mpwrx, -mpwr2 generate code for POWER/2 (RIOS2)\n\
+-mpwr generate code for POWER (RIOS1)\n\
+-m601 generate code for PowerPC 601\n\
-mppc, -mppc32, -m603, -m604\n\
- generate code for PowerPC 603/604\n\
--m403 generate code for PowerPC 403\n\
--m405 generate code for PowerPC 405\n\
--m440 generate code for PowerPC 440\n\
--m464 generate code for PowerPC 464\n\
--m476 generate code for PowerPC 476\n\
+ generate code for PowerPC 603/604\n\
+-m403 generate code for PowerPC 403\n\
+-m405 generate code for PowerPC 405\n\
+-m440 generate code for PowerPC 440\n\
+-m464 generate code for PowerPC 464\n\
+-m476 generate code for PowerPC 476\n\
-m7400, -m7410, -m7450, -m7455\n\
- generate code for PowerPC 7400/7410/7450/7455\n\
--m750cl generate code for PowerPC 750cl\n"));
+ generate code for PowerPC 7400/7410/7450/7455\n\
+-m750cl generate code for PowerPC 750cl\n"));
fprintf (stream, _("\
--mppc64, -m620 generate code for PowerPC 620/625/630\n\
--mppc64bridge generate code for PowerPC 64, including bridge insns\n\
--mbooke generate code for 32-bit PowerPC BookE\n\
--ma2 generate code for A2 architecture\n\
--mpower4 generate code for Power4 architecture\n\
--mpower5 generate code for Power5 architecture\n\
--mpower6 generate code for Power6 architecture\n\
--mpower7 generate code for Power7 architecture\n\
--mcell generate code for Cell Broadband Engine architecture\n\
--mcom generate code Power/PowerPC common instructions\n\
--many generate code for any architecture (PWR/PWRX/PPC)\n"));
+-mppc64, -m620 generate code for PowerPC 620/625/630\n\
+-mppc64bridge generate code for PowerPC 64, including bridge insns\n\
+-mbooke generate code for 32-bit PowerPC BookE\n\
+-ma2 generate code for A2 architecture\n\
+-mpower4 generate code for Power4 architecture\n\
+-mpower5 generate code for Power5 architecture\n\
+-mpower6 generate code for Power6 architecture\n\
+-mpower7 generate code for Power7 architecture\n\
+-mcell generate code for Cell Broadband Engine architecture\n\
+-mcom generate code Power/PowerPC common instructions\n\
+-many generate code for any architecture (PWR/PWRX/PPC)\n"));
fprintf (stream, _("\
--maltivec generate code for AltiVec\n\
--mvsx generate code for Vector-Scalar (VSX) instructions\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\
--me500mc64, generate code for Freescale e500mc64 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"));
+-maltivec generate code for AltiVec\n\
+-mvsx generate code for Vector-Scalar (VSX) instructions\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\
+-me500mc64, generate code for Freescale e500mc64 core complex\n\
+-mspe generate code for Motorola SPE instructions\n\
+-mtitan generate code for AppliedMicro Titan core complex\n\
+-mregnames Allow symbolic names for registers\n\
+-mno-regnames Do not allow symbolic names for registers\n"));
#ifdef OBJ_ELF
fprintf (stream, _("\
--mrelocatable support for GCC's -mrelocatble option\n\
--mrelocatable-lib support for GCC's -mrelocatble-lib option\n\
--memb set PPC_EMB bit in ELF flags\n\
+-mrelocatable support for GCC's -mrelocatble option\n\
+-mrelocatable-lib support for GCC's -mrelocatble-lib option\n\
+-memb set PPC_EMB bit in ELF flags\n\
-mlittle, -mlittle-endian, -l, -le\n\
- generate code for a little endian machine\n\
+ generate code for a little endian machine\n\
-mbig, -mbig-endian, -b, -be\n\
- generate code for a big endian machine\n\
--msolaris generate code for Solaris\n\
--mno-solaris do not generate code for Solaris\n\
--V print assembler version number\n\
--Qy, -Qn ignored\n"));
+ generate code for a big endian machine\n\
+-msolaris generate code for Solaris\n\
+-mno-solaris do not generate code for Solaris\n\
+-V print assembler version number\n\
+-Qy, -Qn ignored\n"));
#endif
}
@@ -1291,6 +1292,8 @@ ppc_mach (void)
return bfd_mach_ppc64;
else if (ppc_arch () == bfd_arch_rs6000)
return bfd_mach_rs6k;
+ else if (ppc_cpu & PPC_OPCODE_TITAN)
+ return bfd_mach_ppc_titan;
else
return bfd_mach_ppc;
}
diff --git a/gas/doc/c-ppc.texi b/gas/doc/c-ppc.texi
index cab461b..1436604 100644
--- a/gas/doc/c-ppc.texi
+++ b/gas/doc/c-ppc.texi
@@ -1,4 +1,4 @@
-@c Copyright 2001, 2002, 2003, 2005, 2006, 2007, 2008
+@c Copyright 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010
@c Free Software Foundation, Inc.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.
@@ -70,6 +70,9 @@ Generate code for Motorola e500 core complex.
@item -mspe
Generate code for Motorola SPE instructions.
+@item -mtitan
+Generate code for AppliedMicro Titan core complex.
+
@item -mppc64bridge
Generate code for PowerPC 64, including bridge insns.
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 080ca73..43a7813 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-08 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
+
+ * gas/ppc/titan.d, * gas/ppc/titan.s: New test.
+ * gas/ppc/ppc.exp: Run it.
+
2010-02-03 Quentin Neill <quentin.neill@amd.com>
* gas/i386/i386.exp: Rename amdfam15 test cases to bdver1.
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index 0c8d852..3db0ade 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -50,5 +50,6 @@ if { [istarget powerpc*-*-*] } then {
run_dump_test "power7"
run_dump_test "vsx"
run_dump_test "476"
+ run_dump_test "titan"
}
}
diff --git a/gas/testsuite/gas/ppc/titan.d b/gas/testsuite/gas/ppc/titan.d
new file mode 100644
index 0000000..2b59928
--- /dev/null
+++ b/gas/testsuite/gas/ppc/titan.d
@@ -0,0 +1,267 @@
+#as: -mtitan
+#objdump: -dr -Mtitan
+#name: AppliedMicro Titan tests
+
+.*: +file format elf(32)?(64)?-powerpc.*
+
+Disassembly of section \.text:
+
+0+0000000 <start>:
+ 0: 4e 80 00 20 blr
+ 4: 0c 81 00 00 tweqi r1,0
+ 8: 10 41 01 58 macchw r2,r1,r0
+ c: 10 41 01 59 macchw\. r2,r1,r0
+ 10: 10 41 05 58 macchwo r2,r1,r0
+ 14: 10 41 05 59 macchwo\. r2,r1,r0
+ 18: 10 41 01 d8 macchws r2,r1,r0
+ 1c: 10 41 01 d9 macchws\. r2,r1,r0
+ 20: 10 41 05 d8 macchwso r2,r1,r0
+ 24: 10 41 05 d9 macchwso\. r2,r1,r0
+ 28: 10 41 01 98 macchwsu r2,r1,r0
+ 2c: 10 41 01 99 macchwsu\. r2,r1,r0
+ 30: 10 41 05 98 macchwsuo r2,r1,r0
+ 34: 10 41 05 99 macchwsuo\. r2,r1,r0
+ 38: 10 41 01 18 macchwu r2,r1,r0
+ 3c: 10 41 01 19 macchwu\. r2,r1,r0
+ 40: 10 41 05 18 macchwuo r2,r1,r0
+ 44: 10 41 05 19 macchwuo\. r2,r1,r0
+ 48: 10 41 00 58 machhw r2,r1,r0
+ 4c: 10 41 00 59 machhw\. r2,r1,r0
+ 50: 10 41 04 58 machhwo r2,r1,r0
+ 54: 10 41 04 59 machhwo\. r2,r1,r0
+ 58: 10 41 00 d8 machhws r2,r1,r0
+ 5c: 10 41 00 d9 machhws\. r2,r1,r0
+ 60: 10 41 04 d8 machhwso r2,r1,r0
+ 64: 10 41 04 d9 machhwso\. r2,r1,r0
+ 68: 10 41 00 98 machhwsu r2,r1,r0
+ 6c: 10 41 00 99 machhwsu\. r2,r1,r0
+ 70: 10 41 04 98 machhwsuo r2,r1,r0
+ 74: 10 41 04 99 machhwsuo\. r2,r1,r0
+ 78: 10 41 00 18 machhwu r2,r1,r0
+ 7c: 10 41 00 19 machhwu\. r2,r1,r0
+ 80: 10 41 04 18 machhwuo r2,r1,r0
+ 84: 10 41 04 19 machhwuo\. r2,r1,r0
+ 88: 10 41 03 58 maclhw r2,r1,r0
+ 8c: 10 41 03 59 maclhw\. r2,r1,r0
+ 90: 10 41 07 58 maclhwo r2,r1,r0
+ 94: 10 41 07 59 maclhwo\. r2,r1,r0
+ 98: 10 41 03 d8 maclhws r2,r1,r0
+ 9c: 10 41 03 d9 maclhws\. r2,r1,r0
+ a0: 10 41 07 d8 maclhwso r2,r1,r0
+ a4: 10 41 07 d9 maclhwso\. r2,r1,r0
+ a8: 10 41 03 98 maclhwsu r2,r1,r0
+ ac: 10 41 03 99 maclhwsu\. r2,r1,r0
+ b0: 10 41 07 98 maclhwsuo r2,r1,r0
+ b4: 10 41 07 99 maclhwsuo\. r2,r1,r0
+ b8: 10 41 03 18 maclhwu r2,r1,r0
+ bc: 10 41 03 19 maclhwu\. r2,r1,r0
+ c0: 10 41 07 18 maclhwuo r2,r1,r0
+ c4: 10 41 07 19 maclhwuo\. r2,r1,r0
+ c8: 10 41 01 5c nmacchw r2,r1,r0
+ cc: 10 41 01 5d nmacchw\. r2,r1,r0
+ d0: 10 41 05 5c nmacchwo r2,r1,r0
+ d4: 10 41 05 5d nmacchwo\. r2,r1,r0
+ d8: 10 41 01 dc nmacchws r2,r1,r0
+ dc: 10 41 01 dd nmacchws\. r2,r1,r0
+ e0: 10 41 05 dc nmacchwso r2,r1,r0
+ e4: 10 41 05 dd nmacchwso\. r2,r1,r0
+ e8: 10 41 00 5c nmachhw r2,r1,r0
+ ec: 10 41 00 5d nmachhw\. r2,r1,r0
+ f0: 10 41 04 5c nmachhwo r2,r1,r0
+ f4: 10 41 04 5d nmachhwo\. r2,r1,r0
+ f8: 10 41 00 dc nmachhws r2,r1,r0
+ fc: 10 41 00 dd nmachhws\. r2,r1,r0
+ 100: 10 41 04 dc nmachhwso r2,r1,r0
+ 104: 10 41 04 dd nmachhwso\. r2,r1,r0
+ 108: 10 41 03 5c nmaclhw r2,r1,r0
+ 10c: 10 41 03 5d nmaclhw\. r2,r1,r0
+ 110: 10 41 07 5c nmaclhwo r2,r1,r0
+ 114: 10 41 07 5d nmaclhwo\. r2,r1,r0
+ 118: 10 41 03 dc nmaclhws r2,r1,r0
+ 11c: 10 41 03 dd nmaclhws\. r2,r1,r0
+ 120: 10 41 07 dc nmaclhwso r2,r1,r0
+ 124: 10 41 07 dd nmaclhwso\. r2,r1,r0
+ 128: 10 41 01 50 mulchw r2,r1,r0
+ 12c: 10 41 01 51 mulchw\. r2,r1,r0
+ 130: 10 41 01 10 mulchwu r2,r1,r0
+ 134: 10 41 01 11 mulchwu\. r2,r1,r0
+ 138: 10 41 00 50 mulhhw r2,r1,r0
+ 13c: 10 41 00 51 mulhhw\. r2,r1,r0
+ 140: 10 41 00 10 mulhhwu r2,r1,r0
+ 144: 10 41 00 11 mulhhwu\. r2,r1,r0
+ 148: 10 41 03 50 mullhw r2,r1,r0
+ 14c: 10 41 03 51 mullhw\. r2,r1,r0
+ 150: 10 41 03 10 mullhwu r2,r1,r0
+ 154: 10 41 03 11 mullhwu\. r2,r1,r0
+ 158: 7c 22 00 9c dlmzb r2,r1,r0
+ 15c: 7c 22 00 9d dlmzb\. r2,r1,r0
+ 160: 7c 02 0b 8c dccci r2,r1
+ 164: 7c 02 0f 8c iccci r2,r1
+ 168: 7c 02 0b 0c dcblc r2,r1
+ 16c: 7c 02 0b 0c dcblc r2,r1
+ 170: 7c 22 0b 0c dcblc 1,r2,r1
+ 174: 7c 02 09 4c dcbtls r2,r1
+ 178: 7c 02 09 4c dcbtls r2,r1
+ 17c: 7c 22 09 4c dcbtls 1,r2,r1
+ 180: 7c 02 09 0c dcbtstls r2,r1
+ 184: 7c 02 09 0c dcbtstls r2,r1
+ 188: 7c 22 09 0c dcbtstls 1,r2,r1
+ 18c: 7c 02 09 cc icblc r2,r1
+ 190: 7c 02 09 cc icblc r2,r1
+ 194: 7c 22 09 cc icblc 1,r2,r1
+ 198: 7c 02 0b cc icbtls r2,r1
+ 19c: 7c 02 0b cc icbtls r2,r1
+ 1a0: 7c 22 0b cc icbtls 1,r2,r1
+ 1a4: 7c 41 02 8c dcread r2,r1,r0
+ 1a8: 7c 02 0f cc icread r2,r1
+ 1ac: 7c 41 02 9c mfpmr r2,1
+ 1b0: 7c 22 02 9c mfpmr r1,2
+ 1b4: 7c 81 02 a6 mfxer r4
+ 1b8: 7c 81 02 a6 mfxer r4
+ 1bc: 7c 88 02 a6 mflr r4
+ 1c0: 7c 88 02 a6 mflr r4
+ 1c4: 7c 89 02 a6 mfctr r4
+ 1c8: 7c 89 02 a6 mfctr r4
+ 1cc: 7c 96 02 a6 mfdec r4
+ 1d0: 7c 96 02 a6 mfdec r4
+ 1d4: 7c 9a 02 a6 mfsrr0 r4
+ 1d8: 7c 9a 02 a6 mfsrr0 r4
+ 1dc: 7c 9b 02 a6 mfsrr1 r4
+ 1e0: 7c 9b 02 a6 mfsrr1 r4
+ 1e4: 7c 90 0a a6 mfpid r4
+ 1e8: 7c 90 0a a6 mfpid r4
+ 1ec: 7c 9a 0a a6 mfcsrr0 r4
+ 1f0: 7c 9a 0a a6 mfcsrr0 r4
+ 1f4: 7c 9b 0a a6 mfcsrr1 r4
+ 1f8: 7c 9b 0a a6 mfcsrr1 r4
+ 1fc: 7c 9d 0a a6 mfdear r4
+ 200: 7c 9d 0a a6 mfdear r4
+ 204: 7c 9e 0a a6 mfesr r4
+ 208: 7c 9e 0a a6 mfesr r4
+ 20c: 7c 9f 0a a6 mfivpr r4
+ 210: 7c 9f 0a a6 mfivpr r4
+ 214: 7c 80 42 a6 mfusprg0 r4
+ 218: 7c 80 42 a6 mfusprg0 r4
+ 21c: 7c 84 42 a6 mfsprg r4,4
+ 220: 7c 84 42 a6 mfsprg r4,4
+ 224: 7c 85 42 a6 mfsprg r4,5
+ 228: 7c 85 42 a6 mfsprg r4,5
+ 22c: 7c 86 42 a6 mfsprg r4,6
+ 230: 7c 86 42 a6 mfsprg r4,6
+ 234: 7c 87 42 a6 mfsprg r4,7
+ 238: 7c 87 42 a6 mfsprg r4,7
+ 23c: 7c 8c 42 a6 mftb r4
+ 240: 7c 8c 42 a6 mftb r4
+ 244: 7c 8c 42 a6 mftb r4
+ 248: 7c 8d 42 a6 mftbu r4
+ 24c: 7c 8d 42 a6 mftbu r4
+ 250: 7c 90 42 a6 mfsprg r4,0
+ 254: 7c 90 42 a6 mfsprg r4,0
+ 258: 7c 91 42 a6 mfsprg r4,1
+ 25c: 7c 91 42 a6 mfsprg r4,1
+ 260: 7c 92 42 a6 mfsprg r4,2
+ 264: 7c 92 42 a6 mfsprg r4,2
+ 268: 7c 93 42 a6 mfsprg r4,3
+ 26c: 7c 93 42 a6 mfsprg r4,3
+ 270: 7c 9e 42 a6 mfpir r4
+ 274: 7c 9e 42 a6 mfpir r4
+ 278: 7c 9f 42 a6 mfpvr r4
+ 27c: 7c 9f 42 a6 mfpvr r4
+ 280: 7c 90 4a a6 mfdbsr r4
+ 284: 7c 90 4a a6 mfdbsr r4
+ 288: 7c 94 4a a6 mfdbcr0 r4
+ 28c: 7c 94 4a a6 mfdbcr0 r4
+ 290: 7c 95 4a a6 mfdbcr1 r4
+ 294: 7c 95 4a a6 mfdbcr1 r4
+ 298: 7c 96 4a a6 mfdbcr2 r4
+ 29c: 7c 96 4a a6 mfdbcr2 r4
+ 2a0: 7c 98 4a a6 mfiac1 r4
+ 2a4: 7c 98 4a a6 mfiac1 r4
+ 2a8: 7c 99 4a a6 mfiac2 r4
+ 2ac: 7c 99 4a a6 mfiac2 r4
+ 2b0: 7c 9a 4a a6 mfiac3 r4
+ 2b4: 7c 9a 4a a6 mfiac3 r4
+ 2b8: 7c 9b 4a a6 mfiac4 r4
+ 2bc: 7c 9b 4a a6 mfiac4 r4
+ 2c0: 7c 9c 4a a6 mfdac1 r4
+ 2c4: 7c 9c 4a a6 mfdac1 r4
+ 2c8: 7c 9d 4a a6 mfdac2 r4
+ 2cc: 7c 9d 4a a6 mfdac2 r4
+ 2d0: 7c 9e 4a a6 mfdvc1 r4
+ 2d4: 7c 9e 4a a6 mfdvc1 r4
+ 2d8: 7c 9f 4a a6 mfdvc2 r4
+ 2dc: 7c 9f 4a a6 mfdvc2 r4
+ 2e0: 7c 90 52 a6 mftsr r4
+ 2e4: 7c 90 52 a6 mftsr r4
+ 2e8: 7c 94 52 a6 mftcr r4
+ 2ec: 7c 94 52 a6 mftcr r4
+ 2f0: 7c 90 62 a6 mfivor0 r4
+ 2f4: 7c 90 62 a6 mfivor0 r4
+ 2f8: 7c 91 62 a6 mfivor1 r4
+ 2fc: 7c 91 62 a6 mfivor1 r4
+ 300: 7c 92 62 a6 mfivor2 r4
+ 304: 7c 92 62 a6 mfivor2 r4
+ 308: 7c 93 62 a6 mfivor3 r4
+ 30c: 7c 93 62 a6 mfivor3 r4
+ 310: 7c 94 62 a6 mfivor4 r4
+ 314: 7c 94 62 a6 mfivor4 r4
+ 318: 7c 95 62 a6 mfivor5 r4
+ 31c: 7c 95 62 a6 mfivor5 r4
+ 320: 7c 96 62 a6 mfivor6 r4
+ 324: 7c 96 62 a6 mfivor6 r4
+ 328: 7c 97 62 a6 mfivor7 r4
+ 32c: 7c 97 62 a6 mfivor7 r4
+ 330: 7c 98 62 a6 mfivor8 r4
+ 334: 7c 98 62 a6 mfivor8 r4
+ 338: 7c 99 62 a6 mfivor9 r4
+ 33c: 7c 99 62 a6 mfivor9 r4
+ 340: 7c 9a 62 a6 mfivor10 r4
+ 344: 7c 9a 62 a6 mfivor10 r4
+ 348: 7c 9b 62 a6 mfivor11 r4
+ 34c: 7c 9b 62 a6 mfivor11 r4
+ 350: 7c 9c 62 a6 mfivor12 r4
+ 354: 7c 9c 62 a6 mfivor12 r4
+ 358: 7c 9d 62 a6 mfivor13 r4
+ 35c: 7c 9d 62 a6 mfivor13 r4
+ 360: 7c 9e 62 a6 mfivor14 r4
+ 364: 7c 9e 62 a6 mfivor14 r4
+ 368: 7c 9f 62 a6 mfivor15 r4
+ 36c: 7c 9f 62 a6 mfivor15 r4
+ 370: 7c 93 82 a6 mfivor35 r4
+ 374: 7c 93 82 a6 mfivor35 r4
+ 378: 7c 9a 8a a6 mfdc_dat r4
+ 37c: 7c 9a 8a a6 mfdc_dat r4
+ 380: 7c 9b 8a a6 mfmcsrr1 r4
+ 384: 7c 9b 8a a6 mfmcsrr1 r4
+ 388: 7c 9c 8a a6 mfmcsr r4
+ 38c: 7c 9c 8a a6 mfmcsr r4
+ 390: 7c 90 da a6 mfivndx r4
+ 394: 7c 90 da a6 mfivndx r4
+ 398: 7c 91 da a6 mfdvndx r4
+ 39c: 7c 91 da a6 mfdvndx r4
+ 3a0: 7c 92 da a6 mfivlim r4
+ 3a4: 7c 92 da a6 mfivlim r4
+ 3a8: 7c 93 da a6 mfdvlim r4
+ 3ac: 7c 93 da a6 mfdvlim r4
+ 3b0: 7c 94 da a6 mfclcsr r4
+ 3b4: 7c 94 da a6 mfclcsr r4
+ 3b8: 7c 98 da a6 mfccr1 r4
+ 3bc: 7c 98 da a6 mfccr1 r4
+ 3c0: 7c 9b e2 a6 mfrstcfg r4
+ 3c4: 7c 9b e2 a6 mfrstcfg r4
+ 3c8: 7c 9c e2 a6 mfdcdbtrl r4
+ 3cc: 7c 9c e2 a6 mfdcdbtrl r4
+ 3d0: 7c 9d e2 a6 mfdcdbtrh r4
+ 3d4: 7c 9d e2 a6 mfdcdbtrh r4
+ 3d8: 7c 9f e2 a6 mficdbtr r4
+ 3dc: 7c 9f e2 a6 mficdbtr r4
+ 3e0: 7c 92 ea a6 mfmmucr r4
+ 3e4: 7c 92 ea a6 mfmmucr r4
+ 3e8: 7c 93 ea a6 mfccr0 r4
+ 3ec: 7c 93 ea a6 mfccr0 r4
+ 3f0: 7c 93 f2 a6 mficdbdr r4
+ 3f4: 7c 93 f2 a6 mficdbdr r4
+ 3f8: 7c 93 fa a6 mfdbdr r4
+ 3fc: 7c 93 fa a6 mfdbdr r4
+ 400: 7c 96 0b a6 mtdecar r4
+ 404: 7c 96 0b a6 mtdecar r4
diff --git a/gas/testsuite/gas/ppc/titan.s b/gas/testsuite/gas/ppc/titan.s
new file mode 100644
index 0000000..7155a5a
--- /dev/null
+++ b/gas/testsuite/gas/ppc/titan.s
@@ -0,0 +1,261 @@
+# AppliedMicro Titan tests
+ .section ".text"
+start:
+ blr
+ tweqi 1, 0
+ macchw 2, 1, 0
+ macchw. 2, 1, 0
+ macchwo 2, 1, 0
+ macchwo. 2, 1, 0
+ macchws 2, 1, 0
+ macchws. 2, 1, 0
+ macchwso 2, 1, 0
+ macchwso. 2, 1, 0
+ macchwsu 2, 1, 0
+ macchwsu. 2, 1, 0
+ macchwsuo 2, 1, 0
+ macchwsuo. 2, 1, 0
+ macchwu 2, 1, 0
+ macchwu. 2, 1, 0
+ macchwuo 2, 1, 0
+ macchwuo. 2, 1, 0
+ machhw 2, 1, 0
+ machhw. 2, 1, 0
+ machhwo 2, 1, 0
+ machhwo. 2, 1, 0
+ machhws 2, 1, 0
+ machhws. 2, 1, 0
+ machhwso 2, 1, 0
+ machhwso. 2, 1, 0
+ machhwsu 2, 1, 0
+ machhwsu. 2, 1, 0
+ machhwsuo 2, 1, 0
+ machhwsuo. 2, 1, 0
+ machhwu 2, 1, 0
+ machhwu. 2, 1, 0
+ machhwuo 2, 1, 0
+ machhwuo. 2, 1, 0
+ maclhw 2, 1, 0
+ maclhw. 2, 1, 0
+ maclhwo 2, 1, 0
+ maclhwo. 2, 1, 0
+ maclhws 2, 1, 0
+ maclhws. 2, 1, 0
+ maclhwso 2, 1, 0
+ maclhwso. 2, 1, 0
+ maclhwsu 2, 1, 0
+ maclhwsu. 2, 1, 0
+ maclhwsuo 2, 1, 0
+ maclhwsuo. 2, 1, 0
+ maclhwu 2, 1, 0
+ maclhwu. 2, 1, 0
+ maclhwuo 2, 1, 0
+ maclhwuo. 2, 1, 0
+ nmacchw 2, 1, 0
+ nmacchw. 2, 1, 0
+ nmacchwo 2, 1, 0
+ nmacchwo. 2, 1, 0
+ nmacchws 2, 1, 0
+ nmacchws. 2, 1, 0
+ nmacchwso 2, 1, 0
+ nmacchwso. 2, 1, 0
+ nmachhw 2, 1, 0
+ nmachhw. 2, 1, 0
+ nmachhwo 2, 1, 0
+ nmachhwo. 2, 1, 0
+ nmachhws 2, 1, 0
+ nmachhws. 2, 1, 0
+ nmachhwso 2, 1, 0
+ nmachhwso. 2, 1, 0
+ nmaclhw 2, 1, 0
+ nmaclhw. 2, 1, 0
+ nmaclhwo 2, 1, 0
+ nmaclhwo. 2, 1, 0
+ nmaclhws 2, 1, 0
+ nmaclhws. 2, 1, 0
+ nmaclhwso 2, 1, 0
+ nmaclhwso. 2, 1, 0
+ mulchw 2, 1, 0
+ mulchw. 2, 1, 0
+ mulchwu 2, 1, 0
+ mulchwu. 2, 1, 0
+ mulhhw 2, 1, 0
+ mulhhw. 2, 1, 0
+ mulhhwu 2, 1, 0
+ mulhhwu. 2, 1, 0
+ mullhw 2, 1, 0
+ mullhw. 2, 1, 0
+ mullhwu 2, 1, 0
+ mullhwu. 2, 1, 0
+ dlmzb 2, 1, 0
+ dlmzb. 2, 1, 0
+ dccci 2, 1
+ iccci 2, 1
+ dcblc 0, 2, 1
+ dcblc 2, 1
+ dcblc 1, 2, 1
+ dcbtls 0, 2, 1
+ dcbtls 2, 1
+ dcbtls 1, 2, 1
+ dcbtstls 0, 2, 1
+ dcbtstls 2, 1
+ dcbtstls 1, 2, 1
+ icblc 0, 2, 1
+ icblc 2, 1
+ icblc 1, 2, 1
+ icbtls 0, 2, 1
+ icbtls 2, 1
+ icbtls 1, 2, 1
+ dcread 2, 1, 0
+ icread 2, 1
+ mfpmr 2, 1
+ mfpmr 1, 2
+ mfspr 4, 0x001
+ mfxer 4
+ mfspr 4, 0x008
+ mflr 4
+ mfspr 4, 0x009
+ mfctr 4
+ mfspr 4, 0x016
+ mfdec 4
+ mfspr 4, 0x01a
+ mfsrr0 4
+ mfspr 4, 0x01b
+ mfsrr1 4
+ mfspr 4, 0x030
+ mfpid 4
+ mfspr 4, 0x03a
+ mfcsrr0 4
+ mfspr 4, 0x03b
+ mfcsrr1 4
+ mfspr 4, 0x03d
+ mfdear 4
+ mfspr 4, 0x03e
+ mfesr 4
+ mfspr 4, 0x03f
+ mfivpr 4
+ mfspr 4, 0x100
+ mfusprg0 4
+ mfspr 4, 0x104
+ mfsprg4 4
+ mfspr 4, 0x105
+ mfsprg5 4
+ mfspr 4, 0x106
+ mfsprg6 4
+ mfspr 4, 0x107
+ mfsprg7 4
+ mfspr 4, 0x10c
+ mftbl 4
+ mftb 4
+ mfspr 4, 0x10d
+ mftbu 4
+ mfspr 4, 0x110
+ mfsprg0 4
+ mfspr 4, 0x111
+ mfsprg1 4
+ mfspr 4, 0x112
+ mfsprg2 4
+ mfspr 4, 0x113
+ mfsprg3 4
+ mfspr 4, 0x11e
+ mfpir 4
+ mfspr 4, 0x11f
+ mfpvr 4
+ mfspr 4, 0x130
+ mfdbsr 4
+ mfspr 4, 0x134
+ mfdbcr0 4
+ mfspr 4, 0x135
+ mfdbcr1 4
+ mfspr 4, 0x136
+ mfdbcr2 4
+ mfspr 4, 0x138
+ mfiac1 4
+ mfspr 4, 0x139
+ mfiac2 4
+ mfspr 4, 0x13a
+ mfiac3 4
+ mfspr 4, 0x13b
+ mfiac4 4
+ mfspr 4, 0x13c
+ mfdac1 4
+ mfspr 4, 0x13d
+ mfdac2 4
+ mfspr 4, 0x13e
+ mfdvc1 4
+ mfspr 4, 0x13f
+ mfdvc2 4
+ mfspr 4, 0x150
+ mftsr 4
+ mfspr 4, 0x154
+ mftcr 4
+ mfspr 4, 0x190
+ mfivor0 4
+ mfspr 4, 0x191
+ mfivor1 4
+ mfspr 4, 0x192
+ mfivor2 4
+ mfspr 4, 0x193
+ mfivor3 4
+ mfspr 4, 0x194
+ mfivor4 4
+ mfspr 4, 0x195
+ mfivor5 4
+ mfspr 4, 0x196
+ mfivor6 4
+ mfspr 4, 0x197
+ mfivor7 4
+ mfspr 4, 0x198
+ mfivor8 4
+ mfspr 4, 0x199
+ mfivor9 4
+ mfspr 4, 0x19a
+ mfivor10 4
+ mfspr 4, 0x19b
+ mfivor11 4
+ mfspr 4, 0x19c
+ mfivor12 4
+ mfspr 4, 0x19d
+ mfivor13 4
+ mfspr 4, 0x19e
+ mfivor14 4
+ mfspr 4, 0x19f
+ mfivor15 4
+ mfspr 4, 0x213
+ mfivor35 4
+ mfspr 4, 0x23a
+ mfmcsrr0 4
+ mfspr 4, 0x23b
+ mfmcsrr1 4
+ mfspr 4, 0x23c
+ mfmcsr 4
+ mfspr 4, 0x370
+ mfivndx 4
+ mfspr 4, 0x371
+ mfdvndx 4
+ mfspr 4, 0x372
+ mfivlim 4
+ mfspr 4, 0x373
+ mfdvlim 4
+ mfspr 4, 0x374
+ mfclcsr 4
+ mfspr 4, 0x378
+ mfccr1 4
+ mfspr 4, 0x39b
+ mfrstcfg 4
+ mfspr 4, 0x39c
+ mfdcdbtrl 4
+ mfspr 4, 0x39d
+ mfdcdbtrh 4
+ mfspr 4, 0x39f
+ mficdbtr 4
+ mfspr 4, 0x3b2
+ mfmmucr 4
+ mfspr 4, 0x3b3
+ mfccr0 4
+ mfspr 4, 0x3d3
+ mficdbdr 4
+ mfspr 4, 0x3f3
+ mfdbdr 4
+ mtspr 0x036, 4
+ mtdecar 4