This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] Simplify handling of NOPOWER4 and mfcr
- From: Peter Bergner <bergner at vnet dot ibm dot com>
- To: binutils at sourceware dot org
- Date: Mon, 8 Sep 2008 20:00:22 -0500
- Subject: [PATCH] Simplify handling of NOPOWER4 and mfcr
While attempting to add support for a new processor which like POWER4, accepts
the new mfcr insn with a FXM argument, I ran into a problem where I wanted to
do something similar to:
{"mfcr", XFXM(31,19,0,0), XRARB_MASK, NOPOWER4|COM, {RT}},
- {"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, POWER4, {RT, FXM4}},
+ {"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, POWER4|FOO, {RT, FXM4}},
where processor FOO does _not_ contain the PPC_OPCODE_POWER4 flag like
POWER5, POWER6 and POWER7 do. I noticed that OR'ing in FOO above not
only didn't enable the new mfcr instruction, it broke it for POWER4 and
above. Since the tests are basically testing when to skip a particular
opcodem I rearranged the POWER4 / NOPOWER4 handling which seems to
work better for my special case which will come later. In addition,
the POWER5 and POWER6 tests are unnecessary as they are handled above,
so removed them.
To ensure I got everything working correctly, I have added some new tests
to ensure we don't regress with repsect to the mfcr handling.
This has passed bootstrap and make check. Ok for mainline?
Peter
gas/
* config/tc-ppc.c (ppc_setup_opcodes): Simplify POWER4/NOPOWER4 test.
Remove POWER5 and POWER6 tests.
gas/testsuite/
* gas/ppc/common.s: New test.
* gas/ppc/common.d: Likewise.
* gas/ppc/power4_32.s: Likewise.
* gas/ppc/power4_32.d: Likewise.
* gas/ppc/power6.s: Add attn, mtcr, mtcrf, mfcr, dcbz.
* gas/ppc/power6.d: Likewise.
* gas/ppc/ppc.exp: Run power4_32 test.
Index: gas/config/tc-ppc.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-ppc.c,v
retrieving revision 1.141
diff -u -p -r1.141 tc-ppc.c
--- gas/config/tc-ppc.c 2 Aug 2008 04:38:50 -0000 1.141
+++ gas/config/tc-ppc.c 8 Sep 2008 22:48:17 -0000
@@ -1428,15 +1428,8 @@ ppc_setup_opcodes (void)
&& ((op->flags & PPC_OPCODE_BOOKE64) == 0
|| (ppc_cpu & PPC_OPCODE_BOOKE64) == PPC_OPCODE_BOOKE64
|| (ppc_cpu & PPC_OPCODE_BOOKE) == 0)
- && ((op->flags & (PPC_OPCODE_POWER4 | PPC_OPCODE_NOPOWER4)) == 0
- || ((op->flags & PPC_OPCODE_POWER4)
- == (ppc_cpu & PPC_OPCODE_POWER4)))
- && ((op->flags & PPC_OPCODE_POWER5) == 0
- || ((op->flags & PPC_OPCODE_POWER5)
- == (ppc_cpu & PPC_OPCODE_POWER5)))
- && ((op->flags & PPC_OPCODE_POWER6) == 0
- || ((op->flags & PPC_OPCODE_POWER6)
- == (ppc_cpu & PPC_OPCODE_POWER6))))
+ && ((ppc_cpu & PPC_OPCODE_POWER4) == 0
+ || (op->flags & PPC_OPCODE_NOPOWER4) == 0))
{
const char *retval;
Index: gas/testsuite/gas/ppc/common.d
===================================================================
RCS file: gas/testsuite/gas/ppc/common.d
diff -N gas/testsuite/gas/ppc/common.d
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/ppc/common.d 8 Sep 2008 22:48:18 -0000
@@ -0,0 +1,190 @@
+#objdump: -d -Mcom
+#as: -a32 -mcom
+#name: PowerPC COMMON instructions
+
+.*: +file format elf32-powerpc.*
+
+Disassembly of section \.text:
+
+0+00 <start>:
+
+ 0: 7c 83 28 39 and. r3,r4,r5
+ 4: 7c 83 28 38 and r3,r4,r5
+ 8: 7d cd 78 78 andc r13,r14,r15
+ c: 7e 30 90 79 andc. r16,r17,r18
+ 10: 48 00 00 02 ba 0 <start>
+ 14: 40 01 00 00 bdnzf- gt,14 <start\+0x14>
+ 18: 40 85 00 02 blea- cr1,0 <start>
+ 1c: 40 43 00 01 bdzfl- so,1c <start\+0x1c>
+ 20: 41 47 00 03 bdztla- 4\*cr1\+so,0 <start>
+ 24: 4e 80 04 20 bctr
+ 28: 4e 80 04 21 bctrl
+ 2c: 42 40 00 02 bdza- 0 <start>
+ 30: 42 40 00 00 bdz- 30 <start\+0x30>
+ 34: 42 40 00 03 bdzla- 0 <start>
+ 38: 42 40 00 01 bdzl- 38 <start\+0x38>
+ 3c: 41 82 00 00 beq- 3c <start\+0x3c>
+ 40: 41 8a 00 02 beqa- cr2,0 <start>
+ 44: 41 86 00 01 beql- cr1,44 <start\+0x44>
+ 48: 41 8e 00 03 beqla- cr3,0 <start>
+ 4c: 40 80 00 00 bge- 4c <start\+0x4c>
+ 50: 40 90 00 02 bgea- cr4,0 <start>
+ 54: 40 88 00 01 bgel- cr2,54 <start\+0x54>
+ 58: 40 98 00 03 bgela- cr6,0 <start>
+ 5c: 41 91 00 00 bgt- cr4,5c <start\+0x5c>
+ 60: 41 99 00 02 bgta- cr6,0 <start>
+ 64: 41 95 00 01 bgtl- cr5,64 <start\+0x64>
+ 68: 41 9d 00 03 bgtla- cr7,0 <start>
+ 6c: 48 00 00 00 b 6c <start\+0x6c>
+ 70: 48 00 00 03 bla 0 <start>
+ 74: 40 81 00 00 ble- 74 <start\+0x74>
+ 78: 40 91 00 02 blea- cr4,0 <start>
+ 7c: 40 89 00 01 blel- cr2,7c <start\+0x7c>
+ 80: 40 99 00 03 blela- cr6,0 <start>
+ 84: 48 00 00 01 bl 84 <start\+0x84>
+ 88: 41 80 00 00 blt- 88 <start\+0x88>
+ 8c: 41 88 00 02 blta- cr2,0 <start>
+ 90: 41 84 00 01 bltl- cr1,90 <start\+0x90>
+ 94: 41 8c 00 03 bltla- cr3,0 <start>
+ 98: 40 82 00 00 bne- 98 <start\+0x98>
+ 9c: 40 8a 00 02 bnea- cr2,0 <start>
+ a0: 40 86 00 01 bnel- cr1,a0 <start\+0xa0>
+ a4: 40 8e 00 03 bnela- cr3,0 <start>
+ a8: 40 85 00 00 ble- cr1,a8 <start\+0xa8>
+ ac: 40 95 00 02 blea- cr5,0 <start>
+ b0: 40 8d 00 01 blel- cr3,b0 <start\+0xb0>
+ b4: 40 9d 00 03 blela- cr7,0 <start>
+ b8: 40 84 00 00 bge- cr1,b8 <start\+0xb8>
+ bc: 40 94 00 02 bgea- cr5,0 <start>
+ c0: 40 8c 00 01 bgel- cr3,c0 <start\+0xc0>
+ c4: 40 9c 00 03 bgela- cr7,0 <start>
+ c8: 40 93 00 00 bns- cr4,c8 <start\+0xc8>
+ cc: 40 9b 00 02 bnsa- cr6,0 <start>
+ d0: 40 97 00 01 bnsl- cr5,d0 <start\+0xd0>
+ d4: 40 9f 00 03 bnsla- cr7,0 <start>
+ d8: 41 93 00 00 bso- cr4,d8 <start\+0xd8>
+ dc: 41 9b 00 02 bsoa- cr6,0 <start>
+ e0: 41 97 00 01 bsol- cr5,e0 <start\+0xe0>
+ e4: 41 9f 00 03 bsola- cr7,0 <start>
+ e8: 4c 85 32 02 crand 4\*cr1\+lt,4\*cr1\+gt,4\*cr1\+eq
+ ec: 4c 64 29 02 crandc so,4\*cr1\+lt,4\*cr1\+gt
+ f0: 4c e0 0a 42 creqv 4\*cr1\+so,lt,gt
+ f4: 4c 22 19 c2 crnand gt,eq,so
+ f8: 4c 01 10 42 crnor lt,gt,eq
+ fc: 4c a6 3b 82 cror 4\*cr1\+gt,4\*cr1\+eq,4\*cr1\+so
+ 100: 4c 43 23 42 crorc eq,so,4\*cr1\+lt
+ 104: 4c c7 01 82 crxor 4\*cr1\+eq,4\*cr1\+so,lt
+ 108: 7d 6a 62 39 eqv. r10,r11,r12
+ 10c: 7d 6a 62 38 eqv r10,r11,r12
+ 110: fe a0 fa 11 fabs. f21,f31
+ 114: fe a0 fa 10 fabs f21,f31
+ 118: fd 8a 58 40 fcmpo cr3,f10,f11
+ 11c: fd 84 28 00 fcmpu cr3,f4,f5
+ 120: fc 60 20 91 fmr. f3,f4
+ 124: fc 60 20 90 fmr f3,f4
+ 128: fe 80 f1 11 fnabs. f20,f30
+ 12c: fe 80 f1 10 fnabs f20,f30
+ 130: fc 60 20 51 fneg. f3,f4
+ 134: fc 60 20 50 fneg f3,f4
+ 138: fc c0 38 18 frsp f6,f7
+ 13c: fd 00 48 19 frsp. f8,f9
+ 140: 89 21 00 00 lbz r9,0\(r1\)
+ 144: 8d 41 00 01 lbzu r10,1\(r1\)
+ 148: 7e 95 b0 ee lbzux r20,r21,r22
+ 14c: 7c 64 28 ae lbzx r3,r4,r5
+ 150: ca a1 00 08 lfd f21,8\(r1\)
+ 154: ce c1 00 10 lfdu f22,16\(r1\)
+ 158: 7e 95 b4 ee lfdux f20,r21,r22
+ 15c: 7d ae 7c ae lfdx f13,r14,r15
+ 160: c2 61 00 00 lfs f19,0\(r1\)
+ 164: c6 81 00 04 lfsu f20,4\(r1\)
+ 168: 7d 4b 64 6e lfsux f10,r11,r12
+ 16c: 7d 4b 64 2e lfsx f10,r11,r12
+ 170: a9 e1 00 06 lha r15,6\(r1\)
+ 174: ae 01 00 08 lhau r16,8\(r1\)
+ 178: 7d 2a 5a ee lhaux r9,r10,r11
+ 17c: 7d 2a 5a ae lhax r9,r10,r11
+ 180: 7c 64 2e 2c lhbrx r3,r4,r5
+ 184: a1 a1 00 00 lhz r13,0\(r1\)
+ 188: a5 c1 00 02 lhzu r14,2\(r1\)
+ 18c: 7e 96 c2 6e lhzux r20,r22,r24
+ 190: 7e f8 ca 2e lhzx r23,r24,r25
+ 194: 4c 04 00 00 mcrf cr0,cr1
+ 198: fd 90 00 80 mcrfs cr3,cr4
+ 19c: 7d 80 04 00 mcrxr cr3
+ 1a0: 7c 60 00 26 mfcr r3
+ 1a4: 7c 69 02 a6 mfctr r3
+ 1a8: 7c b3 02 a6 mfdar r5
+ 1ac: 7c 92 02 a6 mfdsisr r4
+ 1b0: ff c0 04 8e mffs f30
+ 1b4: ff e0 04 8f mffs. f31
+ 1b8: 7c 48 02 a6 mflr r2
+ 1bc: 7e 60 00 a6 mfmsr r19
+ 1c0: 7c 78 00 26 mfocrf r3,128
+ 1c4: 7c 25 02 a6 mfrtcl r1
+ 1c8: 7c 04 02 a6 mfrtcu r0
+ 1cc: 7c d9 02 a6 mfsdr1 r6
+ 1d0: 7c 60 22 a6 mfspr r3,128
+ 1d4: 7c fa 02 a6 mfsrr0 r7
+ 1d8: 7d 1b 02 a6 mfsrr1 r8
+ 1dc: 7f c1 02 a6 mfxer r30
+ 1e0: 7f fe fb 79 mr. r30,r31
+ 1e4: 7f fe fb 78 mr r30,r31
+ 1e8: 7c 6f f1 20 mtcr r3
+ 1ec: 7c 68 01 20 mtcrf 128,r3
+ 1f0: 7e 69 03 a6 mtctr r19
+ 1f4: 7e b3 03 a6 mtdar r21
+ 1f8: 7f 16 03 a6 mtdec r24
+ 1fc: 7e 92 03 a6 mtdsisr r20
+ 200: fc 60 00 8d mtfsb0. so
+ 204: fc 60 00 8c mtfsb0 so
+ 208: fc 60 00 4d mtfsb1. so
+ 20c: fc 60 00 4c mtfsb1 so
+ 210: fc 0c 55 8e mtfsf 6,f10
+ 214: fc 0c 5d 8f mtfsf. 6,f11
+ 218: ff 00 01 0c mtfsfi 6,0
+ 21c: ff 00 f1 0d mtfsfi. 6,15
+ 220: 7e 48 03 a6 mtlr r18
+ 224: 7d 40 01 24 mtmsr r10
+ 228: 7c 78 01 20 mtocrf 128,r3
+ 22c: 7e f5 03 a6 mtrtcl r23
+ 230: 7e d4 03 a6 mtrtcu r22
+ 234: 7f 39 03 a6 mtsdr1 r25
+ 238: 7c 60 23 a6 mtspr 128,r3
+ 23c: 7f 5a 03 a6 mtsrr0 r26
+ 240: 7f 7b 03 a6 mtsrr1 r27
+ 244: 7e 21 03 a6 mtxer r17
+ 248: 7f bc f3 b9 nand. r28,r29,r30
+ 24c: 7f bc f3 b8 nand r28,r29,r30
+ 250: 7c 64 00 d1 neg. r3,r4
+ 254: 7c 64 00 d0 neg r3,r4
+ 258: 7e 11 04 d0 nego r16,r17
+ 25c: 7e 53 04 d1 nego. r18,r19
+ 260: 7e b4 b0 f9 nor. r20,r21,r22
+ 264: 7e b4 b0 f8 nor r20,r21,r22
+ 268: 7e b4 a8 f9 not. r20,r21
+ 26c: 7e b4 a8 f8 not r20,r21
+ 270: 7c 40 23 78 or r0,r2,r4
+ 274: 7d cc 83 79 or. r12,r14,r16
+ 278: 7e 0f 8b 38 orc r15,r16,r17
+ 27c: 7e 72 a3 39 orc. r18,r19,r20
+ 280: 4c 00 00 64 rfi
+ 284: 99 61 00 02 stb r11,2\(r1\)
+ 288: 9d 81 00 03 stbu r12,3\(r1\)
+ 28c: 7d ae 79 ee stbux r13,r14,r15
+ 290: 7c 64 29 ae stbx r3,r4,r5
+ 294: db 21 00 20 stfd f25,32\(r1\)
+ 298: df 41 00 28 stfdu f26,40\(r1\)
+ 29c: 7c 01 15 ee stfdux f0,r1,r2
+ 2a0: 7f be fd ae stfdx f29,r30,r31
+ 2a4: d2 e1 00 14 stfs f23,20\(r1\)
+ 2a8: d7 01 00 18 stfsu f24,24\(r1\)
+ 2ac: 7f 5b e5 6e stfsux f26,r27,r28
+ 2b0: 7e f8 cd 2e stfsx f23,r24,r25
+ 2b4: b2 21 00 0a sth r17,10\(r1\)
+ 2b8: 7c c7 47 2c sthbrx r6,r7,r8
+ 2bc: b6 41 00 0c sthu r18,12\(r1\)
+ 2c0: 7e b6 bb 6e sthux r21,r22,r23
+ 2c4: 7d 8d 73 2e sthx r12,r13,r14
+ 2c8: 7f dd fa 79 xor. r29,r30,r31
+ 2cc: 7f dd fa 78 xor r29,r30,r31
Index: gas/testsuite/gas/ppc/common.s
===================================================================
RCS file: gas/testsuite/gas/ppc/common.s
diff -N gas/testsuite/gas/ppc/common.s
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/ppc/common.s 8 Sep 2008 22:48:18 -0000
@@ -0,0 +1,182 @@
+ .section ".text"
+start:
+ and. 3,4,5
+ and 3,4,5
+ andc 13,14,15
+ andc. 16,17,18
+ ba label_abs
+ bc 0,1,foo
+ bca 4,5,foo_abs
+ bcl 2,3,foo
+ bcla 10,7,foo_abs
+ bctr
+ bctrl
+ bdza foo_abs
+ bdz foo
+ bdzla foo_abs
+ bdzl foo
+ beq 0,foo
+ beqa 2,foo_abs
+ beql 1,foo
+ beqla 3,foo_abs
+ bge 0,foo
+ bgea 4,foo_abs
+ bgel 2,foo
+ bgela 6,foo_abs
+ bgt 4,foo
+ bgta 6,foo_abs
+ bgtl 5,foo
+ bgtla 7,foo_abs
+ b label
+ bla label_abs
+ ble 0,foo
+ blea 4,foo
+ blel 2,foo
+ blela 6,foo_abs
+ bl label
+ blt 0,foo
+ blta 2,foo_abs
+ bltl 1,foo
+ bltla 3,foo_abs
+ bne 0,foo
+ bnea 2,foo
+ bnel 1,foo
+ bnela 3,foo_abs
+ bng 1,foo
+ bnga 5,foo_abs
+ bngl 3,foo
+ bngla 7,foo_abs
+ bnl 1,foo
+ bnla 5,foo_abs
+ bnll 3,foo
+ bnlla 7,foo_abs
+ bns 4,foo
+ bnsa 6,foo_abs
+ bnsl 5,foo
+ bnsla 7,foo_abs
+ bso 4,foo
+ bsoa 6,foo_abs
+ bsol 5,foo
+ bsola 7,foo_abs
+ crand 4,5,6
+ crandc 3,4,5
+ creqv 7,0,1
+ crnand 1,2,3
+ crnor 0,1,2
+ cror 5,6,7
+ crorc 2,3,4
+ crxor 6,7,0
+ eqv. 10,11,12
+ eqv 10,11,12
+ fabs. 21,31
+ fabs 21,31
+ fcmpo 3,10,11
+ fcmpu 3,4,5
+ fmr. 3,4
+ fmr 3,4
+ fnabs. 20,30
+ fnabs 20,30
+ fneg. 3,4
+ fneg 3,4
+ frsp 6,7
+ frsp. 8,9
+ lbz 9,0(1)
+ lbzu 10,1(1)
+ lbzux 20,21,22
+ lbzx 3,4,5
+ lfd 21,8(1)
+ lfdu 22,16(1)
+ lfdux 20,21,22
+ lfdx 13,14,15
+ lfs 19,0(1)
+ lfsu 20,4(1)
+ lfsux 10,11,12
+ lfsx 10,11,12
+ lha 15,6(1)
+ lhau 16,8(1)
+ lhaux 9,10,11
+ lhax 9,10,11
+ lhbrx 3,4,5
+ lhz 13,0(1)
+ lhzu 14,2(1)
+ lhzux 20,22,24
+ lhzx 23,24,25
+ mcrf 0,1
+ mcrfs 3,4
+ mcrxr 3
+ mfcr 3
+ mfctr 3
+ mfdar 5
+ mfdsisr 4
+ mffs 30
+ mffs. 31
+ mflr 2
+ mfmsr 19
+ mfocrf 3,0x80
+ mfrtcl 1
+ mfrtcu 0
+ mfsdr1 6
+ mfspr 3,0x80
+ mfsrr0 7
+ mfsrr1 8
+ mfxer 30
+ mr. 30,31
+ mr 30,31
+ mtcr 3
+ mtcrf 0x80,3
+ mtctr 19
+ mtdar 21
+ mtdec 24
+ mtdsisr 20
+ mtfsb0. 3
+ mtfsb0 3
+ mtfsb1. 3
+ mtfsb1 3
+ mtfsf 6,10
+ mtfsf. 6,11
+ mtfsfi 6,0
+ mtfsfi. 6,15
+ mtlr 18
+ mtmsr 10
+ mtocrf 0x80,3
+ mtrtcl 23
+ mtrtcu 22
+ mtsdr1 25
+ mtspr 0x80,3
+ mtsrr0 26
+ mtsrr1 27
+ mtxer 17
+ nand. 28,29,30
+ nand 28,29,30
+ neg. 3,4
+ neg 3,4
+ nego 16,17
+ nego. 18,19
+ nor. 20,21,22
+ nor 20,21,22
+ not. 20,21
+ not 20,21
+ or 0,2,4
+ or. 12,14,16
+ orc 15,16,17
+ orc. 18,19,20
+ rfi
+ stb 11,2(1)
+ stbu 12,3(1)
+ stbux 13,14,15
+ stbx 3,4,5
+ stfd 25,32(1)
+ stfdu 26,40(1)
+ stfdux 0,1,2
+ stfdx 29,30,31
+ stfs 23,20(1)
+ stfsu 24,24(1)
+ stfsux 26,27,28
+ stfsx 23,24,25
+ sth 17,10(1)
+ sthbrx 6,7,8
+ sthu 18,12(1)
+ sthux 21,22,23
+ sthx 12,13,14
+ xor. 29,30,31
+ xor 29,30,31
Index: gas/testsuite/gas/ppc/power4_32.d
===================================================================
RCS file: gas/testsuite/gas/ppc/power4_32.d
diff -N gas/testsuite/gas/ppc/power4_32.d
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/ppc/power4_32.d 8 Sep 2008 22:48:18 -0000
@@ -0,0 +1,43 @@
+#objdump: -d -Mpower4
+#as: -a32 -mpower4
+#name: Power4 instructions
+
+.*: +file format elf32-powerpc.*
+
+Disassembly of section \.text:
+
+0+00 <start>:
+ 0: 80 c7 00 00 lwz r6,0\(r7\)
+ 4: 80 c7 00 10 lwz r6,16\(r7\)
+ 8: 80 c7 ff f0 lwz r6,-16\(r7\)
+ c: 80 c7 80 00 lwz r6,-32768\(r7\)
+ 10: 80 c7 7f f0 lwz r6,32752\(r7\)
+ 14: 90 c7 00 00 stw r6,0\(r7\)
+ 18: 90 c7 00 10 stw r6,16\(r7\)
+ 1c: 90 c7 ff f0 stw r6,-16\(r7\)
+ 20: 90 c7 80 00 stw r6,-32768\(r7\)
+ 24: 90 c7 7f f0 stw r6,32752\(r7\)
+ 28: 00 00 02 00 attn
+ 2c: 7c 6f f1 20 mtcr r3
+ 30: 7c 6f f1 20 mtcr r3
+ 34: 7c 68 11 20 mtcrf 129,r3
+ 38: 7c 70 11 20 mtocrf 1,r3
+ 3c: 7c 70 21 20 mtocrf 2,r3
+ 40: 7c 70 41 20 mtocrf 4,r3
+ 44: 7c 70 81 20 mtocrf 8,r3
+ 48: 7c 71 01 20 mtocrf 16,r3
+ 4c: 7c 72 01 20 mtocrf 32,r3
+ 50: 7c 74 01 20 mtocrf 64,r3
+ 54: 7c 78 01 20 mtocrf 128,r3
+ 58: 7c 60 00 26 mfcr r3
+ 5c: 7c 70 10 26 mfocrf r3,1
+ 60: 7c 70 20 26 mfocrf r3,2
+ 64: 7c 70 40 26 mfocrf r3,4
+ 68: 7c 70 80 26 mfocrf r3,8
+ 6c: 7c 71 00 26 mfocrf r3,16
+ 70: 7c 72 00 26 mfocrf r3,32
+ 74: 7c 74 00 26 mfocrf r3,64
+ 78: 7c 78 00 26 mfocrf r3,128
+ 7c: 7c 01 17 ec dcbz r1,r2
+ 80: 7c 23 27 ec dcbzl r3,r4
+ 84: 7c 05 37 ec dcbz r5,r6
Index: gas/testsuite/gas/ppc/power4_32.s
===================================================================
RCS file: gas/testsuite/gas/ppc/power4_32.s
diff -N gas/testsuite/gas/ppc/power4_32.s
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/ppc/power4_32.s 8 Sep 2008 22:48:18 -0000
@@ -0,0 +1,36 @@
+ .section ".text"
+start:
+ lwz 6,0(7)
+ lwz 6,16(7)
+ lwz 6,-16(7)
+ lwz 6,-32768(7)
+ lwz 6,32752(7)
+ stw 6,0(7)
+ stw 6,16(7)
+ stw 6,-16(7)
+ stw 6,-32768(7)
+ stw 6,32752(7)
+ attn
+ mtcr 3
+ mtcrf 0xff,3
+ mtcrf 0x81,3
+ mtcrf 0x01,3
+ mtcrf 0x02,3
+ mtcrf 0x04,3
+ mtcrf 0x08,3
+ mtcrf 0x10,3
+ mtcrf 0x20,3
+ mtcrf 0x40,3
+ mtcrf 0x80,3
+ mfcr 3
+ mfcr 3,0x01
+ mfcr 3,0x02
+ mfcr 3,0x04
+ mfcr 3,0x08
+ mfcr 3,0x10
+ mfcr 3,0x20
+ mfcr 3,0x40
+ mfcr 3,0x80
+ dcbz 1, 2
+ dcbzl 3, 4
+ dcbz 5, 6
Index: gas/testsuite/gas/ppc/power6.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/power6.d,v
retrieving revision 1.1
diff -u -p -r1.1 power6.d
--- gas/testsuite/gas/ppc/power6.d 1 Aug 2008 02:44:12 -0000 1.1
+++ gas/testsuite/gas/ppc/power6.d 8 Sep 2008 22:48:18 -0000
@@ -28,4 +28,27 @@ Disassembly of section \.text:
48: 7e 08 3a ac dstt r8,r7,0
4c: 7c 65 32 ec dstst r5,r6,3
50: 7e 44 2a ec dststt r4,r5,2
-
+ 54: 00 00 02 00 attn
+ 58: 7c 6f f1 20 mtcr r3
+ 5c: 7c 6f f1 20 mtcr r3
+ 60: 7c 68 11 20 mtcrf 129,r3
+ 64: 7c 70 11 20 mtocrf 1,r3
+ 68: 7c 70 21 20 mtocrf 2,r3
+ 6c: 7c 70 41 20 mtocrf 4,r3
+ 70: 7c 70 81 20 mtocrf 8,r3
+ 74: 7c 71 01 20 mtocrf 16,r3
+ 78: 7c 72 01 20 mtocrf 32,r3
+ 7c: 7c 74 01 20 mtocrf 64,r3
+ 80: 7c 78 01 20 mtocrf 128,r3
+ 84: 7c 60 00 26 mfcr r3
+ 88: 7c 70 10 26 mfocrf r3,1
+ 8c: 7c 70 20 26 mfocrf r3,2
+ 90: 7c 70 40 26 mfocrf r3,4
+ 94: 7c 70 80 26 mfocrf r3,8
+ 98: 7c 71 00 26 mfocrf r3,16
+ 9c: 7c 72 00 26 mfocrf r3,32
+ a0: 7c 74 00 26 mfocrf r3,64
+ a4: 7c 78 00 26 mfocrf r3,128
+ a8: 7c 01 17 ec dcbz r1,r2
+ ac: 7c 23 27 ec dcbzl r3,r4
+ b0: 7c 05 37 ec dcbz r5,r6
Index: gas/testsuite/gas/ppc/power6.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/power6.s,v
retrieving revision 1.1
diff -u -p -r1.1 power6.s
--- gas/testsuite/gas/ppc/power6.s 1 Aug 2008 02:44:12 -0000 1.1
+++ gas/testsuite/gas/ppc/power6.s 8 Sep 2008 22:48:18 -0000
@@ -23,3 +23,27 @@ start:
dstt 8,7,0
dstst 5,6,3
dststt 4,5,2
+ attn
+ mtcr 3
+ mtcrf 0xff,3
+ mtcrf 0x81,3
+ mtcrf 0x01,3
+ mtcrf 0x02,3
+ mtcrf 0x04,3
+ mtcrf 0x08,3
+ mtcrf 0x10,3
+ mtcrf 0x20,3
+ mtcrf 0x40,3
+ mtcrf 0x80,3
+ mfcr 3
+ mfcr 3,0x01
+ mfcr 3,0x02
+ mfcr 3,0x04
+ mfcr 3,0x08
+ mfcr 3,0x10
+ mfcr 3,0x20
+ mfcr 3,0x40
+ mfcr 3,0x80
+ dcbz 1, 2
+ dcbzl 3, 4
+ dcbz 5, 6
Index: gas/testsuite/gas/ppc/ppc.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/ppc.exp,v
retrieving revision 1.20
diff -u -p -r1.20 ppc.exp
--- gas/testsuite/gas/ppc/ppc.exp 2 Aug 2008 04:38:51 -0000 1.20
+++ gas/testsuite/gas/ppc/ppc.exp 8 Sep 2008 22:48:18 -0000
@@ -45,6 +45,8 @@ if { [istarget powerpc*-*-*] } then {
run_dump_test "ppc750ps"
run_dump_test "e500mc"
run_dump_test "cell"
+ run_dump_test "common"
+ run_dump_test "power4_32"
run_dump_test "power6"
run_dump_test "power7"
}