blob: cac76baa2c89f512f52eafff593d611ff37e9f0e [file] [log] [blame]
Ulrich Weigandd8394902013-05-03 19:50:27 +00001
2# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
3
4# FIXME: Condition register bit symbols
5
6# Branch mnemonics
7
8# CHECK: blr # encoding: [0x4e,0x80,0x00,0x20]
9 blr
10# CHECK: bctr # encoding: [0x4e,0x80,0x04,0x20]
11 bctr
12# FIXME: blrl
13# CHECK: bctrl # encoding: [0x4e,0x80,0x04,0x21]
14 bctrl
15
16# FIXME: bt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000017# FIXME: bt target
Ulrich Weigandd8394902013-05-03 19:50:27 +000018# FIXME: bta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000019# FIXME: bta target
Ulrich Weigandd8394902013-05-03 19:50:27 +000020# FIXME: btlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000021# FIXME: btlr
Ulrich Weigandd8394902013-05-03 19:50:27 +000022# FIXME: btctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000023# FIXME: btctr
Ulrich Weigandd8394902013-05-03 19:50:27 +000024# FIXME: btl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000025# FIXME: btl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000026# FIXME: btla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000027# FIXME: btla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000028# FIXME: btlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000029# FIXME: btlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000030# FIXME: btctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000031# FIXME: btctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000032
33# FIXME: bf 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000034# FIXME: bf target
Ulrich Weigandd8394902013-05-03 19:50:27 +000035# FIXME: bfa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000036# FIXME: bfa target
Ulrich Weigandd8394902013-05-03 19:50:27 +000037# FIXME: bflr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000038# FIXME: bflr
Ulrich Weigandd8394902013-05-03 19:50:27 +000039# FIXME: bfctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000040# FIXME: bfctr
Ulrich Weigandd8394902013-05-03 19:50:27 +000041# FIXME: bfl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000042# FIXME: bfl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000043# FIXME: bfla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000044# FIXME: bfla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000045# FIXME: bflrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000046# FIXME: bflrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000047# FIXME: bfctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000048# FIXME: bfctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000049
50# CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00]
51# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
52 bdnz target
53# FIXME: bdnza target
54# CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20]
55 bdnzlr
56# FIXME: bdnzl target
57# FIXME: bdnzla target
58# FIXME: bdnzlrl
59
60# FIXME: bdnzt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000061# FIXME: bdnzt target
Ulrich Weigandd8394902013-05-03 19:50:27 +000062# FIXME: bdnzta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000063# FIXME: bdnzta target
Ulrich Weigandd8394902013-05-03 19:50:27 +000064# FIXME: bdnztlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000065# FIXME: bdnztlr
Ulrich Weigandd8394902013-05-03 19:50:27 +000066# FIXME: bdnztl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000067# FIXME: bdnztl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000068# FIXME: bdnztla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000069# FIXME: bdnztla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000070# FIXME: bdnztlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000071# FIXME: bdnztlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000072# FIXME: bdnzf 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000073# FIXME: bdnzf target
Ulrich Weigandd8394902013-05-03 19:50:27 +000074# FIXME: bdnzfa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000075# FIXME: bdnzfa target
Ulrich Weigandd8394902013-05-03 19:50:27 +000076# FIXME: bdnzflr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000077# FIXME: bdnzflr
Ulrich Weigandd8394902013-05-03 19:50:27 +000078# FIXME: bdnzfl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000079# FIXME: bdnzfl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000080# FIXME: bdnzfla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000081# FIXME: bdnzfla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000082# FIXME: bdnzflrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000083# FIXME: bdnzflrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000084
85# CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00]
86# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
87 bdz target
88# FIXME: bdza target
89# CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20]
90 bdzlr
91# FIXME: bdzl target
92# FIXME: bdzla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000093# FIXME: bdzlrl
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000094
Ulrich Weigandd8394902013-05-03 19:50:27 +000095# FIXME: bdzt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000096# FIXME: bdzt target
Ulrich Weigandd8394902013-05-03 19:50:27 +000097# FIXME: bdzta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000098# FIXME: bdzta target
Ulrich Weigandd8394902013-05-03 19:50:27 +000099# FIXME: bdztlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000100# FIXME: bdztlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000101# FIXME: bdztl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000102# FIXME: bdztl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000103# FIXME: bdztla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000104# FIXME: bdztla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000105# FIXME: bdztlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000106# FIXME: bdztlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000107# FIXME: bdzf 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000108# FIXME: bdzf target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000109# FIXME: bdzfa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000110# FIXME: bdzfa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000111# FIXME: bdzflr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000112# FIXME: bdzflr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000113# FIXME: bdzfl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000114# FIXME: bdzfl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000115# FIXME: bdzfla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000116# FIXME: bdzfla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000117# FIXME: bdzflrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000118# FIXME: bdzflrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000119
120# CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00]
121# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
122 blt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000123# CHECK: blt 0, target # encoding: [0x41,0x80,A,0bAAAAAA00]
124# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
125 blt target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000126# FIXME: blta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000127# FIXME: blta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000128# CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20]
129 bltlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000130# CHECK: bltlr 0 # encoding: [0x4d,0x80,0x00,0x20]
131 bltlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000132# CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20]
133 bltctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000134# CHECK: bltctr 0 # encoding: [0x4d,0x80,0x04,0x20]
135 bltctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000136# FIXME: bltl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000137# FIXME: bltl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000138# FIXME: bltla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000139# FIXME: bltla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000140# FIXME: bltlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000141# FIXME: bltlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000142# CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21]
143 bltctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000144# CHECK: bltctrl 0 # encoding: [0x4d,0x80,0x04,0x21]
145 bltctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000146
147# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
148# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
149 ble 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000150# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
151# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
152 ble target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000153# FIXME: blea 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000154# FIXME: blea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000155# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
156 blelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000157# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
158 blelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000159# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
160 blectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000161# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
162 blectr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000163# FIXME: blel 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000164# FIXME: blel target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000165# FIXME: blela 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000166# FIXME: blela target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000167# FIXME: blelrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000168# FIXME: blelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000169# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
170 blectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000171# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
172 blectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000173
174# CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00]
175# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
176 beq 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000177# CHECK: beq 0, target # encoding: [0x41,0x82,A,0bAAAAAA00]
178# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
179 beq target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000180# FIXME: beqa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000181# FIXME: beqa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000182# CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
183 beqlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000184# CHECK: beqlr 0 # encoding: [0x4d,0x82,0x00,0x20]
185 beqlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000186# CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20]
187 beqctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000188# CHECK: beqctr 0 # encoding: [0x4d,0x82,0x04,0x20]
189 beqctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000190# FIXME: beql 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000191# FIXME: beql target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000192# FIXME: beqla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000193# FIXME: beqla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000194# FIXME: beqlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000195# FIXME: beqlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000196# CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21]
197 beqctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000198# CHECK: beqctrl 0 # encoding: [0x4d,0x82,0x04,0x21]
199 beqctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000200
201# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
202# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
203 bge 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000204# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
205# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
206 bge target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000207# FIXME: bgea 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000208# FIXME: bgea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000209# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
210 bgelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000211# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
212 bgelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000213# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
214 bgectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000215# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
216 bgectr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000217# FIXME: bgel 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000218# FIXME: bgel target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000219# FIXME: bgela 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000220# FIXME: bgela target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000221# FIXME: bgelrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000222# FIXME: bgelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000223# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
224 bgectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000225# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
226 bgectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000227
228# CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00]
229# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
230 bgt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000231# CHECK: bgt 0, target # encoding: [0x41,0x81,A,0bAAAAAA00]
232# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
233 bgt target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000234# FIXME: bgta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000235# FIXME: bgta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000236# CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20]
237 bgtlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000238# CHECK: bgtlr 0 # encoding: [0x4d,0x81,0x00,0x20]
239 bgtlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000240# CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20]
241 bgtctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000242# CHECK: bgtctr 0 # encoding: [0x4d,0x81,0x04,0x20]
243 bgtctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000244# FIXME: bgtl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000245# FIXME: bgtl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000246# FIXME: bgtla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000247# FIXME: bgtla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000248# FIXME: bgtlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000249# FIXME: bgtlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000250# CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21]
251 bgtctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000252# CHECK: bgtctrl 0 # encoding: [0x4d,0x81,0x04,0x21]
253 bgtctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000254
255# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
256# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
257 bnl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000258# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
259# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
260 bnl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000261# FIXME: bnla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000262# FIXME: bnla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000263# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
264 bnllr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000265# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
266 bnllr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000267# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
268 bnlctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000269# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
270 bnlctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000271# FIXME: bnll 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000272# FIXME: bnll target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000273# FIXME: bnlla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000274# FIXME: bnlla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000275# FIXME: bnllrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000276# FIXME: bnllrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000277# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
278 bnlctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000279# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
280 bnlctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000281
282# CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00]
283# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
284 bne 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000285# CHECK: bne 0, target # encoding: [0x40,0x82,A,0bAAAAAA00]
286# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
287 bne target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000288# FIXME: bnea 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000289# FIXME: bnea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000290# CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20]
291 bnelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000292# CHECK: bnelr 0 # encoding: [0x4c,0x82,0x00,0x20]
293 bnelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000294# CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20]
295 bnectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000296# CHECK: bnectr 0 # encoding: [0x4c,0x82,0x04,0x20]
297 bnectr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000298# FIXME: bnel 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000299# FIXME: bnel target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000300# FIXME: bnela 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000301# FIXME: bnela target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000302# FIXME: bnelrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000303# FIXME: bnelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000304# CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21]
305 bnectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000306# CHECK: bnectrl 0 # encoding: [0x4c,0x82,0x04,0x21]
307 bnectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000308
309# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
310# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
311 bng 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000312# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
313# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
314 bng target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000315# FIXME: bnga 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000316# FIXME: bnga target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000317# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
318 bnglr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000319# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
320 bnglr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000321# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
322 bngctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000323# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
324 bngctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000325# FIXME: bngl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000326# FIXME: bngl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000327# FIXME: bngla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000328# FIXME: bngla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000329# FIXME: bnglrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000330# FIXME: bnglrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000331# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
332 bngctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000333# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
334 bngctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000335
336# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
337# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
338 bso 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000339# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
340# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
341 bso target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000342# FIXME: bsoa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000343# FIXME: bsoa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000344# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
345 bsolr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000346# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
347 bsolr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000348# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
349 bsoctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000350# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
351 bsoctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000352# FIXME: bsol 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000353# FIXME: bsol target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000354# FIXME: bsola 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000355# FIXME: bsola target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000356# FIXME: bsolrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000357# FIXME: bsolrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000358# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
359 bsoctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000360# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
361 bsoctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000362
363# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
364# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
365 bns 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000366# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
367# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
368 bns target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000369# FIXME: bnsa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000370# FIXME: bnsa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000371# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
372 bnslr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000373# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
374 bnslr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000375# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
376 bnsctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000377# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
378 bnsctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000379# FIXME: bnsl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000380# FIXME: bnsl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000381# FIXME: bnsla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000382# FIXME: bnsla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000383# FIXME: bnslrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000384# FIXME: bnslrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000385# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
386 bnsctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000387# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
388 bnsctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000389
390# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
391# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
392 bun 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000393# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
394# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
395 bun target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000396# FIXME: buna 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000397# FIXME: buna target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000398# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
399 bunlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000400# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
401 bunlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000402# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
403 bunctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000404# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
405 bunctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000406# FIXME: bunl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000407# FIXME: bunl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000408# FIXME: bunla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000409# FIXME: bunla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000410# FIXME: bunlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000411# FIXME: bunlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000412# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
413 bunctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000414# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
415 bunctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000416
417# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
418# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
419 bnu 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000420# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
421# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
422 bnu target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000423# FIXME: bnua 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000424# FIXME: bnua target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000425# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
426 bnulr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000427# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
428 bnulr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000429# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
430 bnuctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000431# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
432 bnuctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000433# FIXME: bnul 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000434# FIXME: bnul target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000435# FIXME: bnula 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000436# FIXME: bnula target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000437# FIXME: bnulrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000438# FIXME: bnulrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000439# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
440 bnuctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000441# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
442 bnuctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000443
444# FIXME: Condition register logical mnemonics
445
446# FIXME: Subtract mnemonics
447
448# Compare mnemonics
449
450# CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80]
451 cmpdi 2, 3, 128
452# CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00]
453 cmpd 2, 3, 4
454# CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80]
455 cmpldi 2, 3, 128
456# CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40]
457 cmpld 2, 3, 4
458
459# CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80]
460 cmpwi 2, 3, 128
461# CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00]
462 cmpw 2, 3, 4
463# CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80]
464 cmplwi 2, 3, 128
465# CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
466 cmplw 2, 3, 4
467
468# FIXME: Trap mnemonics
469
470# Rotate and shift mnemonics
471
472# FIXME: extldi 2, 3, 4, 5
473# FIXME: extrdi 2, 3, 4, 5
474# FIXME: insrdi 2, 3, 4, 5
475# FIXME: rotldi 2, 3, 4
476# FIXME: rotrdi 2, 3, 4
477# FIXME: rotld 2, 3, 4
478# CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4]
479 sldi 2, 3, 4
480# CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02]
481 srdi 2, 3, 4
482# FIXME: clrldi 2, 3, 4
483# FIXME: clrrdi 2, 3, 4
484# FIXME: clrlsldi 2, 3, 4, 5
485
486# FIXME: extlwi 2, 3, 4, 5
487# FIXME: extrwi 2, 3, 4, 5
488# FIXME: inslwi 2, 3, 4, 5
489# FIXME: insrwi 2, 3, 4, 5
490# FIXME: rotlwi 2, 3, 4
491# FIXME: rotrwi 2, 3, 4
492# FIXME: rotlw 2, 3, 4
493# CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36]
494 slwi 2, 3, 4
495# CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e]
496 srwi 2, 3, 4
497# FIXME: clrlwi 2, 3, 4
498# FIXME: clrrwi 2, 3, 4
499# FIXME: clrlslwi 2, 3, 4, 5
500
501# Move to/from special purpose register mnemonics
502
503# FIXME: mtxer 2
504# FIXME: mfxer 2
505# CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6]
506 mtlr 2
507# CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6]
508 mflr 2
509# CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6]
510 mtctr 2
511# CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6]
512 mfctr 2
513
514# Miscellaneous mnemonics
515
516# CHECK: nop # encoding: [0x60,0x00,0x00,0x00]
517 nop
518# FIXME: xnop
519# CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80]
520 li 2, 128
521# CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80]
522 lis 2, 128
523# FIXME: la 2, 128(4)
524# CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78]
525 mr 2, 3
526# FIXME: not 2, 3
527