# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s # FIXME: Condition register bit symbols # Branch mnemonics # CHECK: blr # encoding: [0x4e,0x80,0x00,0x20] blr # CHECK: bctr # encoding: [0x4e,0x80,0x04,0x20] bctr # FIXME: blrl # CHECK: bctrl # encoding: [0x4e,0x80,0x04,0x21] bctrl # FIXME: bt 2, target # FIXME: bta 2, target # FIXME: btlr 2 # FIXME: btctr 2 # FIXME: btl 2, target # FIXME: btla 2, target # FIXME: btlrl 2 # FIXME: btctrl 2 # FIXME: bf 2, target # FIXME: bfa 2, target # FIXME: bflr 2 # FIXME: bfctr 2 # FIXME: bfl 2, target # FIXME: bfla 2, target # FIXME: bflrl 2 # FIXME: bfctrl 2 # CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bdnz target # FIXME: bdnza target # CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20] bdnzlr # FIXME: bdnzl target # FIXME: bdnzla target # FIXME: bdnzlrl # FIXME: bdnzt 2, target # FIXME: bdnzta 2, target # FIXME: bdnztlr 2 # FIXME: bdnztl 2, target # FIXME: bdnztla 2, target # FIXME: bdnztlrl 2 # FIXME: bdnzf 2, target # FIXME: bdnzfa 2, target # FIXME: bdnzflr 2 # FIXME: bdnzfl 2, target # FIXME: bdnzfla 2, target # FIXME: bdnzflrl 2 # CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bdz target # FIXME: bdza target # CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20] bdzlr # FIXME: bdzl target # FIXME: bdzla target # FIXME: bdzlrl # FIXME: bdzt 2, target # FIXME: bdzta 2, target # FIXME: bdztlr 2 # FIXME: bdztl 2, target # FIXME: bdztla 2, target # FIXME: bdztlrl 2 # FIXME: bdzf 2, target # FIXME: bdzfa 2, target # FIXME: bdzflr 2 # FIXME: bdzfl 2, target # FIXME: bdzfla 2, target # FIXME: bdzflrl 2 # CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 blt 2, target # FIXME: blta 2, target # CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20] bltlr 2 # CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20] bltctr 2 # FIXME: bltl 2, target # FIXME: bltla 2, target # FIXME: bltlrl 2 # CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21] bltctrl 2 # CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 ble 2, target # FIXME: blea 2, target # CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20] blelr 2 # CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20] blectr 2 # FIXME: blel 2, target # FIXME: blela 2, target # FIXME: blelrl 2 # CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21] blectrl 2 # CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 beq 2, target # FIXME: beqa 2, target # CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20] beqlr 2 # CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20] beqctr 2 # FIXME: beql 2, target # FIXME: beqla 2, target # FIXME: beqlrl 2 # CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21] beqctrl 2 # CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bge 2, target # FIXME: bgea 2, target # CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20] bgelr 2 # CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20] bgectr 2 # FIXME: bgel 2, target # FIXME: bgela 2, target # FIXME: bgelrl 2 # CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21] bgectrl 2 # CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bgt 2, target # FIXME: bgta 2, target # CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20] bgtlr 2 # CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20] bgtctr 2 # FIXME: bgtl 2, target # FIXME: bgtla 2, target # FIXME: bgtlrl 2 # CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21] bgtctrl 2 # CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bnl 2, target # FIXME: bnla 2, target # CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20] bnllr 2 # CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20] bnlctr 2 # FIXME: bnll 2, target # FIXME: bnlla 2, target # FIXME: bnllrl 2 # CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21] bnlctrl 2 # CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bne 2, target # FIXME: bnea 2, target # CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20] bnelr 2 # CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20] bnectr 2 # FIXME: bnel 2, target # FIXME: bnela 2, target # FIXME: bnelrl 2 # CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21] bnectrl 2 # CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bng 2, target # FIXME: bnga 2, target # CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20] bnglr 2 # CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20] bngctr 2 # FIXME: bngl 2, target # FIXME: bngla 2, target # FIXME: bnglrl 2 # CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21] bngctrl 2 # CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bso 2, target # FIXME: bsoa 2, target # CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20] bsolr 2 # CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20] bsoctr 2 # FIXME: bsol 2, target # FIXME: bsola 2, target # FIXME: bsolrl 2 # CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21] bsoctrl 2 # CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bns 2, target # FIXME: bnsa 2, target # CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20] bnslr 2 # CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20] bnsctr 2 # FIXME: bnsl 2, target # FIXME: bnsla 2, target # FIXME: bnslrl 2 # CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21] bnsctrl 2 # CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bun 2, target # FIXME: buna 2, target # CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20] bunlr 2 # CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20] bunctr 2 # FIXME: bunl 2, target # FIXME: bunla 2, target # FIXME: bunlrl 2 # CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21] bunctrl 2 # CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00] # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14 bnu 2, target # FIXME: bnua 2, target # CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20] bnulr 2 # CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20] bnuctr 2 # FIXME: bnul 2, target # FIXME: bnula 2, target # FIXME: bnulrl 2 # CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21] bnuctrl 2 # FIXME: Condition register logical mnemonics # FIXME: Subtract mnemonics # Compare mnemonics # CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80] cmpdi 2, 3, 128 # CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00] cmpd 2, 3, 4 # CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80] cmpldi 2, 3, 128 # CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40] cmpld 2, 3, 4 # CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80] cmpwi 2, 3, 128 # CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00] cmpw 2, 3, 4 # CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80] cmplwi 2, 3, 128 # CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40] cmplw 2, 3, 4 # FIXME: Trap mnemonics # Rotate and shift mnemonics # FIXME: extldi 2, 3, 4, 5 # FIXME: extrdi 2, 3, 4, 5 # FIXME: insrdi 2, 3, 4, 5 # FIXME: rotldi 2, 3, 4 # FIXME: rotrdi 2, 3, 4 # FIXME: rotld 2, 3, 4 # CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4] sldi 2, 3, 4 # CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02] srdi 2, 3, 4 # FIXME: clrldi 2, 3, 4 # FIXME: clrrdi 2, 3, 4 # FIXME: clrlsldi 2, 3, 4, 5 # FIXME: extlwi 2, 3, 4, 5 # FIXME: extrwi 2, 3, 4, 5 # FIXME: inslwi 2, 3, 4, 5 # FIXME: insrwi 2, 3, 4, 5 # FIXME: rotlwi 2, 3, 4 # FIXME: rotrwi 2, 3, 4 # FIXME: rotlw 2, 3, 4 # CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36] slwi 2, 3, 4 # CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e] srwi 2, 3, 4 # FIXME: clrlwi 2, 3, 4 # FIXME: clrrwi 2, 3, 4 # FIXME: clrlslwi 2, 3, 4, 5 # Move to/from special purpose register mnemonics # FIXME: mtxer 2 # FIXME: mfxer 2 # CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6] mtlr 2 # CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6] mflr 2 # CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6] mtctr 2 # CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6] mfctr 2 # Miscellaneous mnemonics # CHECK: nop # encoding: [0x60,0x00,0x00,0x00] nop # FIXME: xnop # CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80] li 2, 128 # CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80] lis 2, 128 # FIXME: la 2, 128(4) # CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78] mr 2, 3 # FIXME: not 2, 3