diff options
| author | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2016-03-30 16:11:58 +0000 |
|---|---|---|
| committer | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2016-03-30 16:11:58 +0000 |
| commit | f76123386a7867ff5fa63a55841668ac098e201e (patch) | |
| tree | c55601208fef917d20b8a9f39db7aa14b13b00e9 /llvm/lib | |
| parent | b64d86ff8e80009bf898b49fbd9f9ed06a1239e0 (diff) | |
| download | bcm5719-llvm-f76123386a7867ff5fa63a55841668ac098e201e.tar.gz bcm5719-llvm-f76123386a7867ff5fa63a55841668ac098e201e.zip | |
[SystemZ] Add nop and nopr InstAliases.
For compatability with GAS, nop and nopr are recognized as alises for
bc and bcr, respectively. A mask of 0 turns these instructions
effectively into no-operations.
Reviewed by Ulrich Weigand.
llvm-svn: 264875
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/SystemZ/SystemZInstrInfo.td | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZInstrInfo.td b/llvm/lib/Target/SystemZ/SystemZInstrInfo.td index 7401f111866..37ad8c7c282 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrInfo.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrInfo.td @@ -67,10 +67,15 @@ let isBranch = 1, isTerminator = 1, Uses = [CC] in { "brc\t$R1, $I2", []>; def AsmBRCL : InstRIL<0xC04, (outs), (ins imm32zx4:$R1, brtarget32:$I2), "brcl\t$R1, $I2", []>; + def AsmBC : InstRX<0x47, (outs), (ins imm32zx4:$R1, bdxaddr12only:$XBD2), + "bc\t$R1, $XBD2", []>; def AsmBCR : InstRR<0x07, (outs), (ins imm32zx4:$R1, GR64:$R2), "bcr\t$R1, $R2", []>; } +def AsmNop : InstAlias<"nop\t$XBD", (AsmBC 0, bdxaddr12only:$XBD), 0>; +def AsmNopR : InstAlias<"nopr\t$R", (AsmBCR 0, GR64:$R), 0>; + // Fused compare-and-branch instructions. As for normal branches, // we handle these instructions internally in their raw CRJ-like form, // but use assembly macros like CRJE when writing them out. |

