aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorMatthew Green <mrg@redhat.com>2001-10-13 01:59:09 +0000
committerMatthew Green <mrg@redhat.com>2001-10-13 01:59:09 +0000
commit418c17428467b9fbf59a61493d353d7edf1aed4a (patch)
tree06e383e09349e4d0ca5ed2c5b613d0cb8d7a4b91 /gas
parentfefd0a378f5aff09fb63003bc2a6bb2e2d66ffee (diff)
downloadgdb-418c17428467b9fbf59a61493d353d7edf1aed4a.zip
gdb-418c17428467b9fbf59a61493d353d7edf1aed4a.tar.gz
gdb-418c17428467b9fbf59a61493d353d7edf1aed4a.tar.bz2
[gas/ChangeLog]
* config/tc-ppc.c (md_parse_option): New -m7410, -m7450 and -m7455 flags, equivalent to -m7400. New -maltivec to enable AltiVec instructions. New -mbook64 and -mbooke/-mbooke32 flags to enable 64-bit and 32-bit BookE support, respectively. Change -m403 and -m405 to set PPC403 option. (md_show_usage): Adjust for new options. * doc/all.texi: Set PPC. * doc/as.texinfo: Add PPC support and pull in c-ppc.texi. * doc/c-ppc.texi: New file. * doc/Makefile.am (CPU_DOCS): Add c-ppc.texi. * doc/Makefile.in: Regenerate. [gas/testsuite/ChangeLog] * gas/ppc/booke.s: New test for Motorola BookE. * gas/ppc/booke.d: New file. * gas/ppc/ppc.exp: Test booke.s. [include/opcode/ChangeLog] * ppc.h (PPC_OPCODE_BOOKE, PPC_OPCODE_403): New opcode flags for BookE and PowerPC403 instructions. [opcodes/ChangeLog] * ppc-opc.c (insert_de, extract_de, insert_des, extract_des): New instruction field instruction/extraction functions for new BookE DE form instructions. (CT): New macro for CT field in an X form instruction. (DE, DES, DEO, DE_MASK): New macros for DE/DES fields in DE form instructions. (PPC64): Don't include PPC_OPCODE_PPC. (403): New opcode macro for PPC403 processors. (BOOKE): New opcode macro for BookE processors. (bce, bcel, bcea, bcela, bclre, bclrel: New BookE instructions. (bcctre, bcctrel, be, bel, bea, bela, icbt, icbte, lwzxe): Likewise. (dcbste, lwzuxe, luxe, dcbfe, lbzxe, lwarxe, lbzuxe): Likewise. (stwcxe, stwxe, stxe, stwuxe, stuxe, stbxe, dcbtste, stbuxe): Likewise. (mfapidi, dcbte, lhzxe, lhzuxe, lhaxe, lhauxe, subfe64): Likewise. (subfeo64, adde64, addeo64, sthxe, sthuxe, subfze64): Likewise. (subfzeo64, addze64, addzeo64, dcbie, subfme64, subfmeo64): Likewise. (addme64, addmeo64, stdcxe., mcrxr64, lwbrxe, lfsxe, lfsuxe): Likewise. (lfdxe, lfduxe, stwbrxe, stfsxe, stfsuxe, stfdxe, dcbae): Likewise. (stfduxe, tlbivax, tlbivaxe, lhbrxe, ldxe, lduxe, tlbsx): Likewise. (tlbsxe, sthbrxe, stdxe, stduxe, icbie, stfiwxe, dcbze, lbze): Likewise. (lbzue, ldue, lhze, lhzue, lhae, lhaue, lwze, lwzue): Likewise. (stbe, stbue, sthe, sthue, stwe, stwue, lfse, lfsue, lfde): Likewise. (lfdue, stde, stdue, stfse, stfsue, stfde, stfdue): Likewise. * ppc-dis.c (print_insn_big_powerpc, print_insn_little_powerpc): Look for a disassembler option of `booke', `booke32' or `booke64' to enable BookE support in the disassembler.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog14
-rw-r--r--gas/config/tc-ppc.c32
-rw-r--r--gas/doc/Makefile.am1
-rw-r--r--gas/doc/Makefile.in1
-rw-r--r--gas/doc/all.texi1
-rw-r--r--gas/doc/as.texinfo21
-rw-r--r--gas/doc/c-ppc.texi95
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/ppc/booke.d130
-rw-r--r--gas/testsuite/gas/ppc/booke.s120
-rw-r--r--gas/testsuite/gas/ppc/ppc.exp1
11 files changed, 416 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index eddda37..0a64ccd 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,17 @@
+2001-10-12 matthew green <mrg@redhat.com>
+
+ * config/tc-ppc.c (md_parse_option): New -m7410, -m7450 and -m7455
+ flags, equivalent to -m7400. New -maltivec to enable AltiVec
+ instructions. New -mbook64 and -mbooke/-mbooke32 flags to enable
+ 64-bit and 32-bit BookE support, respectively. Change -m403 and
+ -m405 to set PPC403 option.
+ (md_show_usage): Adjust for new options.
+ * doc/all.texi: Set PPC.
+ * doc/as.texinfo: Add PPC support and pull in c-ppc.texi.
+ * doc/c-ppc.texi: New file.
+ * doc/Makefile.am (CPU_DOCS): Add c-ppc.texi.
+ * doc/Makefile.in: Regenerate.
+
2001-10-12 Nick Clifton <nickc@cambridge.redhat.com>
* read.c (s_bad_endr): New function. Issues a warning message
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index ef4341f..ea8ddd6 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -887,23 +887,40 @@ md_parse_option (c, arg)
Motorola PowerPC 603/604. */
else if (strcmp (arg, "ppc") == 0
|| strcmp (arg, "ppc32") == 0
- || strcmp (arg, "403") == 0
- || strcmp (arg, "405") == 0
|| strcmp (arg, "603") == 0
|| strcmp (arg, "604") == 0)
ppc_cpu = PPC_OPCODE_PPC;
- else if (strcmp (arg, "7400") == 0)
+ /* -m403 and -m405 mean to assemble for the Motorola PowerPC 403/405. */
+ else if (strcmp (arg, "403") == 0
+ || strcmp (arg, "405") == 0)
+ ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_403;
+ else if (strcmp (arg, "7400") == 0
+ || strcmp (arg, "7410") == 0
+ || strcmp (arg, "7450") == 0
+ || strcmp (arg, "7455") == 0)
ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_ALTIVEC;
+ else if (strcmp (arg, "altivec") == 0)
+ ppc_cpu |= PPC_OPCODE_ALTIVEC;
/* -mppc64 and -m620 mean to assemble for the 64-bit PowerPC
620. */
else if (strcmp (arg, "ppc64") == 0 || strcmp (arg, "620") == 0)
{
- ppc_cpu = PPC_OPCODE_PPC;
+ ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_64;
ppc_size = PPC_OPCODE_64;
}
else if (strcmp (arg, "ppc64bridge") == 0)
{
- ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_64_BRIDGE;
+ ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_64_BRIDGE | PPC_OPCODE_64;
+ ppc_size = PPC_OPCODE_64;
+ }
+ /* -mbooke/-mbooke32 mean enable 32-bit BookE support. */
+ else if (strcmp (arg, "booke") == 0 || strcmp (arg, "booke32") == 0)
+ ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_BOOKE;
+ /* -mbooke64 means enable 64-bit BookE support. */
+ else if (strcmp (arg, "booke64") == 0)
+ {
+ ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_BOOKE |
+ PPC_OPCODE_BOOKE64 | PPC_OPCODE_64;
ppc_size = PPC_OPCODE_64;
}
/* -mcom means assemble for the common intersection between Power
@@ -1011,10 +1028,13 @@ PowerPC options:\n\
-mpwrx, -mpwr2 generate code for IBM POWER/2 (RIOS2)\n\
-mpwr generate code for IBM POWER (RIOS1)\n\
-m601 generate code for Motorola PowerPC 601\n\
--mppc, -mppc32, -m403, -m405, -m603, -m604\n\
+-mppc, -mppc32, -m603, -m604\n\
generate code for Motorola PowerPC 603/604\n\
+-m403, -m405 generate code for Motorola PowerPC 403/405\n\
-mppc64, -m620 generate code for Motorola PowerPC 620\n\
-mppc64bridge generate code for PowerPC 64, including bridge insns\n\
+-mbooke64 generate code for 64-bit Motorola BookE\n\
+-mbooke, mbooke32 generate code for 32-bit Motorola BookE\n\
-mcom generate code Power/PowerPC common instructions\n\
-many generate code for any architecture (PWR/PWRX/PPC)\n\
-mregnames Allow symbolic names for registers\n\
diff --git a/gas/doc/Makefile.am b/gas/doc/Makefile.am
index abf95d4..d20c3c0 100644
--- a/gas/doc/Makefile.am
+++ b/gas/doc/Makefile.am
@@ -42,6 +42,7 @@ CPU_DOCS = \
c-ns32k.texi \
c-pdp11.texi \
c-pj.texi \
+ c-ppc.texi \
c-sh.texi \
c-sparc.texi \
c-tic54x.texi \
diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in
index 241d3b2..f36b2a0 100644
--- a/gas/doc/Makefile.in
+++ b/gas/doc/Makefile.in
@@ -152,6 +152,7 @@ CPU_DOCS = \
c-ns32k.texi \
c-pdp11.texi \
c-pj.texi \
+ c-ppc.texi \
c-sh.texi \
c-sparc.texi \
c-tic54x.texi \
diff --git a/gas/doc/all.texi b/gas/doc/all.texi
index f2465c2..6ba731b 100644
--- a/gas/doc/all.texi
+++ b/gas/doc/all.texi
@@ -46,6 +46,7 @@
@set MIPS
@set PDP11
@set PJ
+@set PPC
@set SH
@set SPARC
@set C54X
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index 83f1435..e4a0fc1 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -45,6 +45,7 @@
@set MIPS
@set PDP11
@set PJ
+@set PPC
@set SH
@set SPARC
@set C54X
@@ -291,6 +292,16 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
@ifset PJ
[ -mb | -me ]
@end ifset
+@ifset PPC
+ [ -mpwrx | -mpwr2 | -mpwr | -m601 | -mppc | -mppc32 | -m603 | -m604 |
+ -m403 | -m405 | -mppc64 | -m620 | -mppc64bridge | -mbooke |
+ -mbooke32 | -mbooke64 ]
+ [ -mcom | -many | -maltivec ] [ -memb ]
+ [ -mregnames | -mno-regnames ]
+ [ -mrelocatable | -mrelocatable-lib ]
+ [ -mlittle | -mlittle-endian | -mbig, -mbig-endian ]
+ [ -msolaris | -mno-solaris ]
+@end ifset
@ifset SPARC
@c The order here is important. See c-sparc.texi.
[ -Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite
@@ -1846,6 +1857,9 @@ is considered a comment and is ignored. The line comment character is
@ifset PJ
@samp{;} for picoJava;
@end ifset
+@ifset PPC
+@samp{;} for Motorola PowerPC;
+@end ifset
@ifset SH
@samp{!} for the Hitachi SH;
@end ifset
@@ -5560,6 +5574,9 @@ subject, see the hardware manufacturer's manual.
@ifset PJ
* PJ-Dependent:: picoJava Dependent Features
@end ifset
+@ifset PPC
+* PPC-Dependent:: PowerPC Dependent Features
+@end ifset
@ifset SPARC
* Sparc-Dependent:: SPARC Dependent Features
@end ifset
@@ -5687,6 +5704,10 @@ family.
@include c-pj.texi
@end ifset
+@ifset PPC
+@include c-ppc.texi
+@end ifset
+
@ifset SH
@include c-sh.texi
@end ifset
diff --git a/gas/doc/c-ppc.texi b/gas/doc/c-ppc.texi
new file mode 100644
index 0000000..cae9e23
--- /dev/null
+++ b/gas/doc/c-ppc.texi
@@ -0,0 +1,95 @@
+@c Copyright 2001
+@c Free Software Foundation, Inc.
+@c This is part of the GAS manual.
+@c For copying conditions, see the file as.texinfo.
+@ifset GENERIC
+@page
+@node PPC-Dependent
+@chapter PowerPC Dependent Features
+@end ifset
+@ifclear GENERIC
+@node Machine Dependencies
+@chapter PowerPC Dependent Features
+@end ifclear
+
+@cindex PowerPC support
+@menu
+* PowerPC-Opts:: Options
+@end menu
+
+@node PowerPC-Opts
+@section Options
+
+@cindex options for PowerPC
+@cindex PowerPC options
+@cindex architectures, PowerPC
+@cindex PowerPC architectures
+The PowerPC chip family includes several successive levels, using the same
+core instruction set, but including a few additional instructions at
+each level. There are exceptions to this however. For details on what
+instructions each variant supports, please see the chip's architecture
+reference manual.
+
+The following table lists all available PowerPC options.
+
+@table @code
+@item -mpwrx | -mpwr2
+Generate code for IBM POWER/2 (RIOS2).
+
+@item -mpwr
+Generate code for IBM POWER (RIOS1)
+
+@item -m601
+Generate code for Motorola PowerPC 601.
+
+@item -mppc, -mppc32, -m603, -m604
+Generate code for Motorola PowerPC 603/604.
+
+@item -m403, -m405
+Generate code for Motorola PowerPC 403/405.
+
+@item -mppc64, -m620
+Generate code for Motorola PowerPC 620.
+
+@item -mppc64bridge
+Generate code for PowerPC 64, including bridge insns.
+
+@item -mbooke64
+Generate code for 64-bit Motorola BookE.
+
+@item -mbooke, mbooke32
+Generate code for 32-bit Motorola BookE.
+
+@item -mcom
+Generate code Power/PowerPC common instructions.
+
+@item -many
+Generate code for any architecture (PWR/PWRX/PPC).
+
+@item -mregnames
+Allow symbolic names for registers.
+
+@item -mno-regnames
+Do not allow symbolic names for registers.
+
+@item -mrelocatable
+Support for GCC's -mrelocatble option.
+
+@item -mrelocatable-lib
+Support for GCC's -mrelocatble-lib option.
+
+@item -memb
+Set PPC_EMB bit in ELF flags.
+
+@item -mlittle, -mlittle-endian
+Generate code for a little endian machine.
+
+@item -mbig, -mbig-endian
+Generate code for a big endian machine.
+
+@item -msolaris
+Generate code for Solaris.
+
+@item -mno-solaris
+Do not generate code for Solaris.
+@end table
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 7130a30..06698ef 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2001-10-12 matthew green <mrg@redhat.com>
+
+ * gas/ppc/booke.s: New test for Motorola BookE.
+ * gas/ppc/booke.d: New file.
+ * gas/ppc/ppc.exp: Test booke.s.
+
2001-10-09 Nick Clifton <nickc@cambridge.redhat.com>
* sh/basic.exp: Add dsp dump test.
diff --git a/gas/testsuite/gas/ppc/booke.d b/gas/testsuite/gas/ppc/booke.d
new file mode 100644
index 0000000..0e5b400
--- /dev/null
+++ b/gas/testsuite/gas/ppc/booke.d
@@ -0,0 +1,130 @@
+#as: -mbooke64
+#objdump: -Dr -Mbooke
+#name: BookE tests
+
+.*: +file format elf32-powerpc
+
+Disassembly of section \.text:
+
+0+0000000 <start>:
+ 0: 24 25 00 30 bce 1,4\*cr1\+gt,30 <branch_target_1>
+ 4: 24 46 00 3d bcel 2,4\*cr1\+eq,40 <branch_target_2>
+ 8: 24 67 00 02 bcea 3,4\*cr1\+so,0 <start>
+ 8: R_PPC_ADDR14 branch_target_3
+ c: 24 88 00 03 bcela 4,4\*cr2,0 <start>
+ c: R_PPC_ADDR14 branch_target_4
+ 10: 4c a9 00 22 bclre 5,4\*cr2\+gt
+ 14: 4c aa 00 23 bclrel 5,4\*cr2\+eq
+ 18: 4d 0b 04 22 bcctre 8,4\*cr2\+so
+ 1c: 4d 0c 04 23 bcctrel 8,4\*cr3
+ 20: 58 00 00 74 be 94 <branch_target_5>
+ 24: 58 00 00 89 bel ac <branch_target_6>
+ 28: 58 00 00 02 bea 0 <start>
+ 28: R_PPC_ADDR24 branch_target_7
+ 2c: 58 00 00 03 bela 0 <start>
+ 2c: R_PPC_ADDR24 branch_target_8
+
+0+0000030 <branch_target_1>:
+ 30: e9 09 00 80 lbze r8,8\(r9\)
+ 34: e9 8f 00 41 lbzue r12,4\(r15\)
+ 38: 7c 86 40 fe lbzuxe r4,r6,r8
+ 3c: 7c 65 38 be lbzxe r3,r5,r7
+
+0+0000040 <branch_target_2>:
+ 40: f8 a6 06 40 lde r5,400\(r6\)
+ 44: f8 c7 07 11 ldue r6,452\(r7\)
+ 48: 7c e8 4e 3e ldxe r7,r8,r9
+ 4c: 7d 4b 66 7e lduxe r10,r11,r12
+
+0+0000050 <branch_target_3>:
+ 50: f9 81 02 06 lfde f12,128\(r1\)
+ 54: f8 25 00 47 lfdue f1,16\(r5\)
+ 58: 7c a1 1c be lfdxe f5,r1,r3
+ 5c: 7c c2 24 fe lfduxe f6,r2,r4
+ 60: f9 09 00 c4 lfse f8,48\(r9\)
+ 64: f9 2a 01 15 lfsue f9,68\(r10\)
+ 68: 7d 44 44 7e lfsuxe f10,r4,r8
+ 6c: 7d 23 3c 3e lfsxe f9,r3,r7
+
+0+0000070 <branch_target_4>:
+ 70: e9 45 03 24 lhae r10,50\(r5\)
+ 74: e8 23 00 55 lhaue r1,5\(r3\)
+ 78: 7c a1 1a fe lhauxe r5,r1,r3
+ 7c: 7f be fa be lhaxe r29,r30,r31
+ 80: 7c 22 1e 3c lhbrxe r1,r2,r3
+ 84: e8 83 01 22 lhze r4,18\(r3\)
+ 88: e8 c9 01 43 lhzue r6,20\(r9\)
+ 8c: 7c a7 4a 7e lhzuxe r5,r7,r9
+ 90: 7d 27 2a 3e lhzxe r9,r7,r5
+
+0+0000094 <branch_target_5>:
+ 94: 7d 4f a0 fc lwarxe r10,r15,r20
+ 98: 7c aa 94 3c lwbrxe r5,r10,r18
+ 9c: eb 9d 00 46 lwze r28,4\(r29\)
+ a0: e9 0a 02 87 lwzue r8,40\(r10\)
+ a4: 7c 66 48 7e lwzuxe r3,r6,r9
+ a8: 7f dd e0 3e lwzxe r30,r29,r28
+
+0+00000ac <branch_target_6>:
+ ac: 7c 06 3d fc dcbae r6,r7
+ b0: 7c 08 48 bc dcbfe r8,r9
+ b4: 7c 0a 5b bc dcbie r10,r11
+ b8: 7c 08 f0 7c dcbste r8,r30
+ bc: 7c c3 0a 3c dcbte 6,r3,r1
+ c0: 7c a4 11 fa dcbtste 5,r4,r2
+ c4: 7c 0f 77 fc dcbze r15,r14
+ c8: 7c 03 27 bc icbie r3,r4
+ cc: 7c a8 48 2c icbt 5,r8,r9
+ d0: 7c ca 78 3c icbte 6,r10,r15
+ d4: 7c a6 02 26 mfapidi r5,r6
+ d8: 7c 07 46 24 tlbivax r7,r8
+ dc: 7c 09 56 26 tlbivaxe r9,r10
+ e0: 7c 0b 67 24 tlbsx r11,r12
+ e4: 7c 0d 77 26 tlbsxe r13,r14
+
+0+00000e8 <branch_target_7>:
+ e8: 7c 22 1b 14 adde64 r1,r2,r3
+ ec: 7c 85 37 14 adde64o r4,r5,r6
+ f0: 7c e8 03 d4 addme64 r7,r8
+ f4: 7d 2a 07 d4 addme64o r9,r10
+ f8: 7d 6c 03 94 addze64 r11,r12
+ fc: 7d ae 07 94 addze64o r13,r14
+ 100: 7e 80 04 40 mcrxr64 cr5
+ 104: 7d f0 8b 10 subfe64 r15,r16,r17
+ 108: 7e 53 a7 10 subfe64o r18,r19,r20
+ 10c: 7e b6 03 d0 subfme64 r21,r22
+ 110: 7e f8 07 d0 subfme64o r23,r24
+ 114: 7f 3a 03 90 subfze64 r25,r26
+ 118: 7f 7c 07 90 subfze64o r27,r28
+
+0+000011c <branch_target_8>:
+ 11c: e8 22 03 28 stbe r1,50\(r2\)
+ 120: e8 64 02 89 stbue r3,40\(r4\)
+ 124: 7c a6 39 fe stbuxe r5,r6,r7
+ 128: 7d 09 51 be stbxe r8,r9,r10
+ 12c: 7d 6c 6b ff stdcxe\. r11,r12,r13
+ 130: f9 cf 00 78 stde r14,28\(r15\)
+ 134: fa 11 00 59 stdue r16,20\(r17\)
+ 138: 7e 53 a7 3e stdxe r18,r19,r20
+ 13c: 7e b6 bf 7e stduxe r21,r22,r23
+ 140: f8 38 00 3e stfde f1,12\(r24\)
+ 144: f8 59 00 0f stfdue f2,0\(r25\)
+ 148: 7c 7a dd be stfdxe f3,r26,r27
+ 14c: 7c 9c ed fe stfduxe f4,r28,r29
+ 150: 7c be ff be stfiwxe f5,r30,r31
+ 154: f8 de 00 6c stfse f6,24\(r30\)
+ 158: f8 fd 00 5d stfsue f7,20\(r29\)
+ 15c: 7d 1c dd 3e stfsxe f8,r28,r27
+ 160: 7d 3a cd 7e stfsuxe f9,r26,r25
+ 164: 7f 17 b7 3c sthbrxe r24,r23,r22
+ 168: ea b4 01 ea sthe r21,30\(r20\)
+ 16c: ea 72 02 8b sthue r19,40\(r18\)
+ 170: 7e 30 7b 7e sthuxe r17,r16,r15
+ 174: 7d cd 63 3e sthxe r14,r13,r12
+ 178: 7d 6a 4d 3c stwbrxe r11,r10,r9
+ 17c: 7d 07 31 3d stwcxe\. r8,r7,r6
+ 180: e8 a4 03 2e stwe r5,50\(r4\)
+ 184: e8 62 02 8f stwue r3,40\(r2\)
+ 188: 7c 22 19 7e stwuxe r1,r2,r3
+ 18c: 7c 85 31 3e stwxe r4,r5,r6
+Disassembly of section \.data:
diff --git a/gas/testsuite/gas/ppc/booke.s b/gas/testsuite/gas/ppc/booke.s
new file mode 100644
index 0000000..5929a36
--- /dev/null
+++ b/gas/testsuite/gas/ppc/booke.s
@@ -0,0 +1,120 @@
+# Motorola PowerPC BookE tests
+#as: -mbooke32
+ .section ".text"
+start:
+ bce 1, 5, branch_target_1
+ bcel 2, 6, branch_target_2
+ bcea 3, 7, branch_target_3
+ bcela 4, 8, branch_target_4
+ bclre 5, 9
+ bclrel 5, 10
+ bcctre 8, 11
+ bcctrel 8, 12
+ be branch_target_5
+ bel branch_target_6
+ bea branch_target_7
+ bela branch_target_8
+
+branch_target_1:
+ lbze 8, 8(9)
+ lbzue 12, 4(15)
+ lbzuxe 4, 6, 8
+ lbzxe 3, 5, 7
+
+branch_target_2:
+ lde 5, 400(6)
+ ldue 6, 452(7)
+ ldxe 7, 8, 9
+ lduxe 10, 11, 12
+
+branch_target_3:
+ lfde 12, 128(1)
+ lfdue 1, 16(5)
+ lfdxe 5, 1, 3
+ lfduxe 6, 2, 4
+ lfse 8, 48(9)
+ lfsue 9, 68(10)
+ lfsuxe 10, 4, 8
+ lfsxe 9, 3, 7
+
+branch_target_4:
+ lhae 10, 50(5)
+ lhaue 1, 5(3)
+ lhauxe 5, 1, 3
+ lhaxe 29, 30, 31
+ lhbrxe 1, 2, 3
+ lhze 4, 18(3)
+ lhzue 6, 20(9)
+ lhzuxe 5, 7, 9
+ lhzxe 9, 7, 5
+
+branch_target_5:
+ lwarxe 10, 15, 20
+ lwbrxe 5, 10, 18
+ lwze 28, 4(29)
+ lwzue 8, 40(10)
+ lwzuxe 3, 6, 9
+ lwzxe 30, 29, 28
+
+branch_target_6:
+ dcbae 6, 7
+ dcbfe 8, 9
+ dcbie 10, 11
+ dcbste 8, 30
+ dcbte 6, 3, 1
+ dcbtste 5, 4, 2
+ dcbze 15, 14
+ icbie 3, 4
+ icbt 5, 8, 9
+ icbte 6, 10, 15
+ mfapidi 5, 6
+ tlbivax 7, 8
+ tlbivaxe 9, 10
+ tlbsx 11, 12
+ tlbsxe 13, 14
+
+branch_target_7:
+ adde64 1, 2, 3
+ adde64o 4, 5, 6
+ addme64 7, 8
+ addme64o 9, 10
+ addze64 11, 12
+ addze64o 13, 14
+ mcrxr64 5
+ subfe64 15, 16, 17
+ subfe64o 18, 19, 20
+ subfme64 21, 22
+ subfme64o 23, 24
+ subfze64 25, 26
+ subfze64o 27, 28
+
+branch_target_8:
+ stbe 1, 50(2)
+ stbue 3, 40(4)
+ stbuxe 5, 6, 7
+ stbxe 8, 9, 10
+ stdcxe. 11, 12, 13
+ stde 14, 28(15)
+ stdue 16, 20(17)
+ stdxe 18, 19, 20
+ stduxe 21, 22, 23
+ stfde 1, 12(24)
+ stfdue 2, 0(25)
+ stfdxe 3, 26, 27
+ stfduxe 4, 28, 29
+ stfiwxe 5, 30, 31
+ stfse 6, 24(30)
+ stfsue 7, 20(29)
+ stfsxe 8, 28, 27
+ stfsuxe 9, 26, 25
+ sthbrxe 24, 23, 22
+ sthe 21, 30(20)
+ sthue 19, 40(18)
+ sthuxe 17, 16, 15
+ sthxe 14, 13, 12
+ stwbrxe 11, 10, 9
+ stwcxe. 8, 7, 6
+ stwe 5, 50(4)
+ stwue 3, 40(2)
+ stwuxe 1, 2, 3
+ stwxe 4, 5, 6
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index c7d5274..85d5be0 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -26,4 +26,5 @@ if { [istarget powerpc64*-*-*] || [istarget *-*-elf64*]} then {
if { [istarget powerpc*-*-*] } then {
run_dump_test "simpshft"
+ run_dump_test "booke"
}