summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2013-06-10 17:19:15 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2013-06-10 17:19:15 +0000
commit7c6f90d486911076da01ec0f37af4760fdd7041f (patch)
tree78dbf9712290912553f10b65745619d171d7d3a9 /test
parentb838f9fe619382b212f6055ad94a74ff36db9219 (diff)
downloadllvm-7c6f90d486911076da01ec0f37af4760fdd7041f.tar.gz
llvm-7c6f90d486911076da01ec0f37af4760fdd7041f.tar.bz2
llvm-7c6f90d486911076da01ec0f37af4760fdd7041f.tar.xz
[PowerPC] Support branch mnemonics with implied CR0
The extended branch mnemonics are supposed to use an implied CR0 if there is no explicit condition register specified. This patch adds extra variants of the mnemonics to this effect. Problem reported by Joerg Sonnenberger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183686 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/MC/PowerPC/ppc64-encoding-ext.s198
1 files changed, 197 insertions, 1 deletions
diff --git a/test/MC/PowerPC/ppc64-encoding-ext.s b/test/MC/PowerPC/ppc64-encoding-ext.s
index 4395b1980a..cac76baa2c 100644
--- a/test/MC/PowerPC/ppc64-encoding-ext.s
+++ b/test/MC/PowerPC/ppc64-encoding-ext.s
@@ -14,22 +14,38 @@
bctrl
# FIXME: bt 2, target
+# FIXME: bt target
# FIXME: bta 2, target
+# FIXME: bta target
# FIXME: btlr 2
+# FIXME: btlr
# FIXME: btctr 2
+# FIXME: btctr
# FIXME: btl 2, target
+# FIXME: btl target
# FIXME: btla 2, target
+# FIXME: btla target
# FIXME: btlrl 2
+# FIXME: btlrl
# FIXME: btctrl 2
+# FIXME: btctrl
# FIXME: bf 2, target
+# FIXME: bf target
# FIXME: bfa 2, target
+# FIXME: bfa target
# FIXME: bflr 2
+# FIXME: bflr
# FIXME: bfctr 2
+# FIXME: bfctr
# FIXME: bfl 2, target
+# FIXME: bfl target
# FIXME: bfla 2, target
+# FIXME: bfla target
# FIXME: bflrl 2
+# FIXME: bflrl
# FIXME: bfctrl 2
+# FIXME: bfctrl
# CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
@@ -42,17 +58,29 @@
# FIXME: bdnzlrl
# FIXME: bdnzt 2, target
+# FIXME: bdnzt target
# FIXME: bdnzta 2, target
+# FIXME: bdnzta target
# FIXME: bdnztlr 2
+# FIXME: bdnztlr
# FIXME: bdnztl 2, target
+# FIXME: bdnztl target
# FIXME: bdnztla 2, target
+# FIXME: bdnztla target
# FIXME: bdnztlrl 2
+# FIXME: bdnztlrl
# FIXME: bdnzf 2, target
+# FIXME: bdnzf target
# FIXME: bdnzfa 2, target
+# FIXME: bdnzfa target
# FIXME: bdnzflr 2
+# FIXME: bdnzflr
# FIXME: bdnzfl 2, target
+# FIXME: bdnzfl target
# FIXME: bdnzfla 2, target
+# FIXME: bdnzfla target
# FIXME: bdnzflrl 2
+# FIXME: bdnzflrl
# CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
@@ -62,188 +90,356 @@
bdzlr
# FIXME: bdzl target
# FIXME: bdzla target
-
# FIXME: bdzlrl
+
# FIXME: bdzt 2, target
+# FIXME: bdzt target
# FIXME: bdzta 2, target
+# FIXME: bdzta target
# FIXME: bdztlr 2
+# FIXME: bdztlr
# FIXME: bdztl 2, target
+# FIXME: bdztl target
# FIXME: bdztla 2, target
+# FIXME: bdztla target
# FIXME: bdztlrl 2
+# FIXME: bdztlrl
# FIXME: bdzf 2, target
+# FIXME: bdzf target
# FIXME: bdzfa 2, target
+# FIXME: bdzfa target
# FIXME: bdzflr 2
+# FIXME: bdzflr
# FIXME: bdzfl 2, target
+# FIXME: bdzfl target
# FIXME: bdzfla 2, target
+# FIXME: bdzfla target
# FIXME: bdzflrl 2
+# FIXME: bdzflrl
# CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
blt 2, target
+# CHECK: blt 0, target # encoding: [0x41,0x80,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ blt target
# FIXME: blta 2, target
+# FIXME: blta target
# CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20]
bltlr 2
+# CHECK: bltlr 0 # encoding: [0x4d,0x80,0x00,0x20]
+ bltlr
# CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20]
bltctr 2
+# CHECK: bltctr 0 # encoding: [0x4d,0x80,0x04,0x20]
+ bltctr
# FIXME: bltl 2, target
+# FIXME: bltl target
# FIXME: bltla 2, target
+# FIXME: bltla target
# FIXME: bltlrl 2
+# FIXME: bltlrl
# CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21]
bltctrl 2
+# CHECK: bltctrl 0 # encoding: [0x4d,0x80,0x04,0x21]
+ bltctrl
# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
ble 2, target
+# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ ble target
# FIXME: blea 2, target
+# FIXME: blea target
# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
blelr 2
+# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
+ blelr
# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
blectr 2
+# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
+ blectr
# FIXME: blel 2, target
+# FIXME: blel target
# FIXME: blela 2, target
+# FIXME: blela target
# FIXME: blelrl 2
+# FIXME: blelrl
# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
blectrl 2
+# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
+ blectrl
# CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
beq 2, target
+# CHECK: beq 0, target # encoding: [0x41,0x82,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ beq target
# FIXME: beqa 2, target
+# FIXME: beqa target
# CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
beqlr 2
+# CHECK: beqlr 0 # encoding: [0x4d,0x82,0x00,0x20]
+ beqlr
# CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20]
beqctr 2
+# CHECK: beqctr 0 # encoding: [0x4d,0x82,0x04,0x20]
+ beqctr
# FIXME: beql 2, target
+# FIXME: beql target
# FIXME: beqla 2, target
+# FIXME: beqla target
# FIXME: beqlrl 2
+# FIXME: beqlrl
# CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21]
beqctrl 2
+# CHECK: beqctrl 0 # encoding: [0x4d,0x82,0x04,0x21]
+ beqctrl
# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bge 2, target
+# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ bge target
# FIXME: bgea 2, target
+# FIXME: bgea target
# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
bgelr 2
+# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
+ bgelr
# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
bgectr 2
+# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
+ bgectr
# FIXME: bgel 2, target
+# FIXME: bgel target
# FIXME: bgela 2, target
+# FIXME: bgela target
# FIXME: bgelrl 2
+# FIXME: bgelrl
# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
bgectrl 2
+# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
+ bgectrl
# CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bgt 2, target
+# CHECK: bgt 0, target # encoding: [0x41,0x81,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ bgt target
# FIXME: bgta 2, target
+# FIXME: bgta target
# CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20]
bgtlr 2
+# CHECK: bgtlr 0 # encoding: [0x4d,0x81,0x00,0x20]
+ bgtlr
# CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20]
bgtctr 2
+# CHECK: bgtctr 0 # encoding: [0x4d,0x81,0x04,0x20]
+ bgtctr
# FIXME: bgtl 2, target
+# FIXME: bgtl target
# FIXME: bgtla 2, target
+# FIXME: bgtla target
# FIXME: bgtlrl 2
+# FIXME: bgtlrl
# CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21]
bgtctrl 2
+# CHECK: bgtctrl 0 # encoding: [0x4d,0x81,0x04,0x21]
+ bgtctrl
# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bnl 2, target
+# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ bnl target
# FIXME: bnla 2, target
+# FIXME: bnla target
# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
bnllr 2
+# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
+ bnllr
# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
bnlctr 2
+# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
+ bnlctr
# FIXME: bnll 2, target
+# FIXME: bnll target
# FIXME: bnlla 2, target
+# FIXME: bnlla target
# FIXME: bnllrl 2
+# FIXME: bnllrl
# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
bnlctrl 2
+# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
+ bnlctrl
# CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bne 2, target
+# CHECK: bne 0, target # encoding: [0x40,0x82,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ bne target
# FIXME: bnea 2, target
+# FIXME: bnea target
# CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20]
bnelr 2
+# CHECK: bnelr 0 # encoding: [0x4c,0x82,0x00,0x20]
+ bnelr
# CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20]
bnectr 2
+# CHECK: bnectr 0 # encoding: [0x4c,0x82,0x04,0x20]
+ bnectr
# FIXME: bnel 2, target
+# FIXME: bnel target
# FIXME: bnela 2, target
+# FIXME: bnela target
# FIXME: bnelrl 2
+# FIXME: bnelrl
# CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21]
bnectrl 2
+# CHECK: bnectrl 0 # encoding: [0x4c,0x82,0x04,0x21]
+ bnectrl
# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bng 2, target
+# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ bng target
# FIXME: bnga 2, target
+# FIXME: bnga target
# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
bnglr 2
+# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
+ bnglr
# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
bngctr 2
+# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
+ bngctr
# FIXME: bngl 2, target
+# FIXME: bngl target
# FIXME: bngla 2, target
+# FIXME: bngla target
# FIXME: bnglrl 2
+# FIXME: bnglrl
# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
bngctrl 2
+# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
+ bngctrl
# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bso 2, target
+# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ bso target
# FIXME: bsoa 2, target
+# FIXME: bsoa target
# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
bsolr 2
+# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
+ bsolr
# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
bsoctr 2
+# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
+ bsoctr
# FIXME: bsol 2, target
+# FIXME: bsol target
# FIXME: bsola 2, target
+# FIXME: bsola target
# FIXME: bsolrl 2
+# FIXME: bsolrl
# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
bsoctrl 2
+# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
+ bsoctrl
# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bns 2, target
+# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ bns target
# FIXME: bnsa 2, target
+# FIXME: bnsa target
# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
bnslr 2
+# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
+ bnslr
# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
bnsctr 2
+# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
+ bnsctr
# FIXME: bnsl 2, target
+# FIXME: bnsl target
# FIXME: bnsla 2, target
+# FIXME: bnsla target
# FIXME: bnslrl 2
+# FIXME: bnslrl
# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
bnsctrl 2
+# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
+ bnsctrl
# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bun 2, target
+# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ bun target
# FIXME: buna 2, target
+# FIXME: buna target
# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
bunlr 2
+# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
+ bunlr
# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
bunctr 2
+# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
+ bunctr
# FIXME: bunl 2, target
+# FIXME: bunl target
# FIXME: bunla 2, target
+# FIXME: bunla target
# FIXME: bunlrl 2
+# FIXME: bunlrl
# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
bunctrl 2
+# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
+ bunctrl
# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bnu 2, target
+# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
+# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
+ bnu target
# FIXME: bnua 2, target
+# FIXME: bnua target
# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
bnulr 2
+# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
+ bnulr
# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
bnuctr 2
+# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
+ bnuctr
# FIXME: bnul 2, target
+# FIXME: bnul target
# FIXME: bnula 2, target
+# FIXME: bnula target
# FIXME: bnulrl 2
+# FIXME: bnulrl
# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
bnuctrl 2
+# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
+ bnuctrl
# FIXME: Condition register logical mnemonics