blob: 3c45c60f1feb7339a12e786de7b98fb8481c57b9 [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
Ulrich Weigand1847bb82013-06-24 11:01:55 +000012# CHECK: blrl # encoding: [0x4e,0x80,0x00,0x21]
13 blrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000014# CHECK: bctrl # encoding: [0x4e,0x80,0x04,0x21]
15 bctrl
16
17# FIXME: bt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000018# FIXME: bt target
Ulrich Weigandd8394902013-05-03 19:50:27 +000019# FIXME: bta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000020# FIXME: bta target
Ulrich Weigandd8394902013-05-03 19:50:27 +000021# FIXME: btlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000022# FIXME: btlr
Ulrich Weigandd8394902013-05-03 19:50:27 +000023# FIXME: btctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000024# FIXME: btctr
Ulrich Weigandd8394902013-05-03 19:50:27 +000025# FIXME: btl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000026# FIXME: btl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000027# FIXME: btla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000028# FIXME: btla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000029# FIXME: btlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000030# FIXME: btlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000031# FIXME: btctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000032# FIXME: btctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000033
34# FIXME: bf 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000035# FIXME: bf target
Ulrich Weigandd8394902013-05-03 19:50:27 +000036# FIXME: bfa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000037# FIXME: bfa target
Ulrich Weigandd8394902013-05-03 19:50:27 +000038# FIXME: bflr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000039# FIXME: bflr
Ulrich Weigandd8394902013-05-03 19:50:27 +000040# FIXME: bfctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000041# FIXME: bfctr
Ulrich Weigandd8394902013-05-03 19:50:27 +000042# FIXME: bfl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000043# FIXME: bfl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000044# FIXME: bfla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000045# FIXME: bfla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000046# FIXME: bflrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000047# FIXME: bflrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000048# FIXME: bfctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000049# FIXME: bfctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000050
51# CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00]
52# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
53 bdnz target
54# FIXME: bdnza target
55# CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20]
56 bdnzlr
57# FIXME: bdnzl target
58# FIXME: bdnzla target
59# FIXME: bdnzlrl
60
61# FIXME: bdnzt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000062# FIXME: bdnzt target
Ulrich Weigandd8394902013-05-03 19:50:27 +000063# FIXME: bdnzta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000064# FIXME: bdnzta target
Ulrich Weigandd8394902013-05-03 19:50:27 +000065# FIXME: bdnztlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000066# FIXME: bdnztlr
Ulrich Weigandd8394902013-05-03 19:50:27 +000067# FIXME: bdnztl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000068# FIXME: bdnztl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000069# FIXME: bdnztla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000070# FIXME: bdnztla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000071# FIXME: bdnztlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000072# FIXME: bdnztlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000073# FIXME: bdnzf 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000074# FIXME: bdnzf target
Ulrich Weigandd8394902013-05-03 19:50:27 +000075# FIXME: bdnzfa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000076# FIXME: bdnzfa target
Ulrich Weigandd8394902013-05-03 19:50:27 +000077# FIXME: bdnzflr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000078# FIXME: bdnzflr
Ulrich Weigandd8394902013-05-03 19:50:27 +000079# FIXME: bdnzfl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000080# FIXME: bdnzfl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000081# FIXME: bdnzfla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000082# FIXME: bdnzfla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000083# FIXME: bdnzflrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000084# FIXME: bdnzflrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000085
86# CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00]
87# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
88 bdz target
89# FIXME: bdza target
90# CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20]
91 bdzlr
92# FIXME: bdzl target
93# FIXME: bdzla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000094# FIXME: bdzlrl
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000095
Ulrich Weigandd8394902013-05-03 19:50:27 +000096# FIXME: bdzt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000097# FIXME: bdzt target
Ulrich Weigandd8394902013-05-03 19:50:27 +000098# FIXME: bdzta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000099# FIXME: bdzta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000100# FIXME: bdztlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000101# FIXME: bdztlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000102# FIXME: bdztl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000103# FIXME: bdztl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000104# FIXME: bdztla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000105# FIXME: bdztla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000106# FIXME: bdztlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000107# FIXME: bdztlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000108# FIXME: bdzf 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000109# FIXME: bdzf target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000110# FIXME: bdzfa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000111# FIXME: bdzfa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000112# FIXME: bdzflr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000113# FIXME: bdzflr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000114# FIXME: bdzfl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000115# FIXME: bdzfl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000116# FIXME: bdzfla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000117# FIXME: bdzfla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000118# FIXME: bdzflrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000119# FIXME: bdzflrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000120
121# CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00]
122# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
123 blt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000124# CHECK: blt 0, target # encoding: [0x41,0x80,A,0bAAAAAA00]
125# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
126 blt target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000127# FIXME: blta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000128# FIXME: blta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000129# CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20]
130 bltlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000131# CHECK: bltlr 0 # encoding: [0x4d,0x80,0x00,0x20]
132 bltlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000133# CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20]
134 bltctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000135# CHECK: bltctr 0 # encoding: [0x4d,0x80,0x04,0x20]
136 bltctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000137# FIXME: bltl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000138# FIXME: bltl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000139# FIXME: bltla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000140# FIXME: bltla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000141# CHECK: bltlrl 2 # encoding: [0x4d,0x88,0x00,0x21]
142 bltlrl 2
143# CHECK: bltlrl 0 # encoding: [0x4d,0x80,0x00,0x21]
144 bltlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000145# CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21]
146 bltctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000147# CHECK: bltctrl 0 # encoding: [0x4d,0x80,0x04,0x21]
148 bltctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000149
150# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
151# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
152 ble 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000153# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
154# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
155 ble target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000156# FIXME: blea 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000157# FIXME: blea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000158# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
159 blelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000160# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
161 blelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000162# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
163 blectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000164# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
165 blectr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000166# FIXME: blel 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000167# FIXME: blel target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000168# FIXME: blela 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000169# FIXME: blela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000170# CHECK: blelrl 2 # encoding: [0x4c,0x89,0x00,0x21]
171 blelrl 2
172# CHECK: blelrl 0 # encoding: [0x4c,0x81,0x00,0x21]
173 blelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000174# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
175 blectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000176# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
177 blectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000178
179# CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00]
180# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
181 beq 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000182# CHECK: beq 0, target # encoding: [0x41,0x82,A,0bAAAAAA00]
183# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
184 beq target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000185# FIXME: beqa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000186# FIXME: beqa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000187# CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
188 beqlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000189# CHECK: beqlr 0 # encoding: [0x4d,0x82,0x00,0x20]
190 beqlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000191# CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20]
192 beqctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000193# CHECK: beqctr 0 # encoding: [0x4d,0x82,0x04,0x20]
194 beqctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000195# FIXME: beql 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000196# FIXME: beql target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000197# FIXME: beqla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000198# FIXME: beqla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000199# CHECK: beqlrl 2 # encoding: [0x4d,0x8a,0x00,0x21]
200 beqlrl 2
201# CHECK: beqlrl 0 # encoding: [0x4d,0x82,0x00,0x21]
202 beqlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000203# CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21]
204 beqctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000205# CHECK: beqctrl 0 # encoding: [0x4d,0x82,0x04,0x21]
206 beqctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000207
208# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
209# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
210 bge 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000211# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
212# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
213 bge target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000214# FIXME: bgea 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000215# FIXME: bgea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000216# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
217 bgelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000218# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
219 bgelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000220# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
221 bgectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000222# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
223 bgectr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000224# FIXME: bgel 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000225# FIXME: bgel target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000226# FIXME: bgela 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000227# FIXME: bgela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000228# CHECK: bgelrl 2 # encoding: [0x4c,0x88,0x00,0x21]
229 bgelrl 2
230# CHECK: bgelrl 0 # encoding: [0x4c,0x80,0x00,0x21]
231 bgelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000232# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
233 bgectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000234# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
235 bgectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000236
237# CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00]
238# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
239 bgt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000240# CHECK: bgt 0, target # encoding: [0x41,0x81,A,0bAAAAAA00]
241# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
242 bgt target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000243# FIXME: bgta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000244# FIXME: bgta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000245# CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20]
246 bgtlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000247# CHECK: bgtlr 0 # encoding: [0x4d,0x81,0x00,0x20]
248 bgtlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000249# CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20]
250 bgtctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000251# CHECK: bgtctr 0 # encoding: [0x4d,0x81,0x04,0x20]
252 bgtctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000253# FIXME: bgtl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000254# FIXME: bgtl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000255# FIXME: bgtla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000256# FIXME: bgtla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000257# CHECK: bgtlrl 2 # encoding: [0x4d,0x89,0x00,0x21]
258 bgtlrl 2
259# CHECK: bgtlrl 0 # encoding: [0x4d,0x81,0x00,0x21]
260 bgtlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000261# CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21]
262 bgtctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000263# CHECK: bgtctrl 0 # encoding: [0x4d,0x81,0x04,0x21]
264 bgtctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000265
266# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
267# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
268 bnl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000269# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
270# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
271 bnl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000272# FIXME: bnla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000273# FIXME: bnla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000274# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
275 bnllr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000276# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
277 bnllr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000278# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
279 bnlctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000280# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
281 bnlctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000282# FIXME: bnll 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000283# FIXME: bnll target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000284# FIXME: bnlla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000285# FIXME: bnlla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000286# CHECK: bgelrl 2 # encoding: [0x4c,0x88,0x00,0x21]
287 bnllrl 2
288# CHECK: bgelrl 0 # encoding: [0x4c,0x80,0x00,0x21]
289 bnllrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000290# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
291 bnlctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000292# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
293 bnlctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000294
295# CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00]
296# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
297 bne 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000298# CHECK: bne 0, target # encoding: [0x40,0x82,A,0bAAAAAA00]
299# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
300 bne target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000301# FIXME: bnea 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000302# FIXME: bnea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000303# CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20]
304 bnelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000305# CHECK: bnelr 0 # encoding: [0x4c,0x82,0x00,0x20]
306 bnelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000307# CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20]
308 bnectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000309# CHECK: bnectr 0 # encoding: [0x4c,0x82,0x04,0x20]
310 bnectr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000311# FIXME: bnel 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000312# FIXME: bnel target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000313# FIXME: bnela 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000314# FIXME: bnela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000315# CHECK: bnelrl 2 # encoding: [0x4c,0x8a,0x00,0x21]
316 bnelrl 2
317# CHECK: bnelrl 0 # encoding: [0x4c,0x82,0x00,0x21]
318 bnelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000319# CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21]
320 bnectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000321# CHECK: bnectrl 0 # encoding: [0x4c,0x82,0x04,0x21]
322 bnectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000323
324# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
325# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
326 bng 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000327# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
328# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
329 bng target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000330# FIXME: bnga 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000331# FIXME: bnga target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000332# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
333 bnglr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000334# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
335 bnglr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000336# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
337 bngctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000338# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
339 bngctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000340# FIXME: bngl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000341# FIXME: bngl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000342# FIXME: bngla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000343# FIXME: bngla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000344# CHECK: blelrl 2 # encoding: [0x4c,0x89,0x00,0x21]
345 bnglrl 2
346# CHECK: blelrl 0 # encoding: [0x4c,0x81,0x00,0x21]
347 bnglrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000348# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
349 bngctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000350# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
351 bngctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000352
353# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
354# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
355 bso 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000356# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
357# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
358 bso target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000359# FIXME: bsoa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000360# FIXME: bsoa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000361# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
362 bsolr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000363# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
364 bsolr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000365# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
366 bsoctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000367# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
368 bsoctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000369# FIXME: bsol 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000370# FIXME: bsol target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000371# FIXME: bsola 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000372# FIXME: bsola target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000373# CHECK: bunlrl 2 # encoding: [0x4d,0x8b,0x00,0x21]
374 bsolrl 2
375# CHECK: bunlrl 0 # encoding: [0x4d,0x83,0x00,0x21]
376 bsolrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000377# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
378 bsoctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000379# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
380 bsoctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000381
382# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
383# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
384 bns 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000385# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
386# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
387 bns target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000388# FIXME: bnsa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000389# FIXME: bnsa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000390# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
391 bnslr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000392# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
393 bnslr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000394# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
395 bnsctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000396# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
397 bnsctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000398# FIXME: bnsl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000399# FIXME: bnsl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000400# FIXME: bnsla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000401# FIXME: bnsla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000402# CHECK: bnulrl 2 # encoding: [0x4c,0x8b,0x00,0x21]
403 bnslrl 2
404# CHECK: bnulrl 0 # encoding: [0x4c,0x83,0x00,0x21]
405 bnslrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000406# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
407 bnsctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000408# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
409 bnsctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000410
411# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
412# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
413 bun 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000414# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
415# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
416 bun target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000417# FIXME: buna 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000418# FIXME: buna target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000419# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
420 bunlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000421# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
422 bunlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000423# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
424 bunctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000425# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
426 bunctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000427# FIXME: bunl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000428# FIXME: bunl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000429# FIXME: bunla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000430# FIXME: bunla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000431# CHECK: bunlrl 2 # encoding: [0x4d,0x8b,0x00,0x21]
432 bunlrl 2
433# CHECK: bunlrl 0 # encoding: [0x4d,0x83,0x00,0x21]
434 bunlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000435# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
436 bunctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000437# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
438 bunctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000439
440# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
441# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
442 bnu 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000443# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
444# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
445 bnu target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000446# FIXME: bnua 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000447# FIXME: bnua target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000448# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
449 bnulr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000450# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
451 bnulr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000452# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
453 bnuctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000454# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
455 bnuctr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000456# FIXME: bnul 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000457# FIXME: bnul target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000458# FIXME: bnula 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000459# FIXME: bnula target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000460# CHECK: bnulrl 2 # encoding: [0x4c,0x8b,0x00,0x21]
461 bnulrl 2
462# CHECK: bnulrl 0 # encoding: [0x4c,0x83,0x00,0x21]
463 bnulrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000464# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
465 bnuctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000466# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
467 bnuctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000468
469# FIXME: Condition register logical mnemonics
470
471# FIXME: Subtract mnemonics
472
473# Compare mnemonics
474
475# CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80]
476 cmpdi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000477# CHECK: cmpdi 0, 3, 128 # encoding: [0x2c,0x23,0x00,0x80]
478 cmpdi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000479# CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00]
480 cmpd 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000481# CHECK: cmpd 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x00]
482 cmpd 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000483# CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80]
484 cmpldi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000485# CHECK: cmpldi 0, 3, 128 # encoding: [0x28,0x23,0x00,0x80]
486 cmpldi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000487# CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40]
488 cmpld 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000489# CHECK: cmpld 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x40]
490 cmpld 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000491
492# CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80]
493 cmpwi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000494# CHECK: cmpwi 0, 3, 128 # encoding: [0x2c,0x03,0x00,0x80]
495 cmpwi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000496# CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00]
497 cmpw 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000498# CHECK: cmpw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x00]
499 cmpw 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000500# CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80]
501 cmplwi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000502# CHECK: cmplwi 0, 3, 128 # encoding: [0x28,0x03,0x00,0x80]
503 cmplwi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000504# CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
505 cmplw 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000506# CHECK: cmplw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x40]
507 cmplw 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000508
509# FIXME: Trap mnemonics
510
511# Rotate and shift mnemonics
512
513# FIXME: extldi 2, 3, 4, 5
514# FIXME: extrdi 2, 3, 4, 5
515# FIXME: insrdi 2, 3, 4, 5
516# FIXME: rotldi 2, 3, 4
517# FIXME: rotrdi 2, 3, 4
518# FIXME: rotld 2, 3, 4
519# CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4]
520 sldi 2, 3, 4
521# CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02]
522 srdi 2, 3, 4
523# FIXME: clrldi 2, 3, 4
524# FIXME: clrrdi 2, 3, 4
525# FIXME: clrlsldi 2, 3, 4, 5
526
527# FIXME: extlwi 2, 3, 4, 5
528# FIXME: extrwi 2, 3, 4, 5
529# FIXME: inslwi 2, 3, 4, 5
530# FIXME: insrwi 2, 3, 4, 5
531# FIXME: rotlwi 2, 3, 4
532# FIXME: rotrwi 2, 3, 4
533# FIXME: rotlw 2, 3, 4
534# CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36]
535 slwi 2, 3, 4
536# CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e]
537 srwi 2, 3, 4
538# FIXME: clrlwi 2, 3, 4
539# FIXME: clrrwi 2, 3, 4
540# FIXME: clrlslwi 2, 3, 4, 5
541
542# Move to/from special purpose register mnemonics
543
544# FIXME: mtxer 2
545# FIXME: mfxer 2
546# CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6]
547 mtlr 2
548# CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6]
549 mflr 2
550# CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6]
551 mtctr 2
552# CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6]
553 mfctr 2
554
555# Miscellaneous mnemonics
556
557# CHECK: nop # encoding: [0x60,0x00,0x00,0x00]
558 nop
559# FIXME: xnop
560# CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80]
561 li 2, 128
562# CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80]
563 lis 2, 128
564# FIXME: la 2, 128(4)
565# CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78]
566 mr 2, 3
567# FIXME: not 2, 3
568