diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2013-06-24 11:02:19 +0000 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2013-06-24 11:02:19 +0000 |
commit | 813942a0cf8e0605002c5fa364372a8a61634cc4 (patch) | |
tree | 6c9ff9cfa8f5c5efb695a56ae58886bc6efb5923 /lib/Target/PowerPC | |
parent | 7e66f5c1b4a166d823e0452d1a1bc0f822d04201 (diff) | |
download | external_llvm-813942a0cf8e0605002c5fa364372a8a61634cc4.zip external_llvm-813942a0cf8e0605002c5fa364372a8a61634cc4.tar.gz external_llvm-813942a0cf8e0605002c5fa364372a8a61634cc4.tar.bz2 |
[PowerPC] Support b(cond)l in the asm parser
This patch adds support for the conditional variants of bl.
The pattern is currently used by the asm parser only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184719 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC')
-rw-r--r-- | lib/Target/PowerPC/PPCInstrInfo.td | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td index 5343270..8f896ad 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.td +++ b/lib/Target/PowerPC/PPCInstrInfo.td @@ -916,6 +916,10 @@ let isCall = 1, PPC970_Unit = 7, Defs = [LR] in { "bl $func", BrB, []>; // See Pat patterns below. def BLA : IForm<18, 1, 1, (outs), (ins aaddr:$func), "bla $func", BrB, [(PPCcall (i32 imm:$func))]>; + + let isCodeGenOnly = 1 in + def BCCL : BForm<16, 0, 1, (outs), (ins pred:$cond, condbrtarget:$dst), + "b${cond:cc}l ${cond:reg}, $dst">; } let Uses = [CTR, RM] in { def BCTRL : XLForm_2_ext<19, 528, 20, 0, 1, (outs), (ins), @@ -2191,6 +2195,11 @@ multiclass BranchExtendedMnemonic<string name, int bibo> { def : InstAlias<"b"#name#"ctr", (BCCTR bibo, CR0)>; + def : InstAlias<"b"#name#"l $cc, $dst", + (BCCL bibo, crrc:$cc, condbrtarget:$dst)>; + def : InstAlias<"b"#name#"l $dst", + (BCCL bibo, CR0, condbrtarget:$dst)>; + def : InstAlias<"b"#name#"lrl $cc", (BCLRL bibo, crrc:$cc)>; def : InstAlias<"b"#name#"lrl", |