diff options
| author | Richard Osborne <richard@xmos.com> | 2011-07-19 13:28:50 +0000 | 
|---|---|---|
| committer | Richard Osborne <richard@xmos.com> | 2011-07-19 13:28:50 +0000 | 
| commit | c8007ab582c49bb6d165e09e6279e441af985ecf (patch) | |
| tree | ef4ff900f8aec8041aff378933dab10b56757c43 /lib/Target | |
| parent | 829bef1a467e1049c8dc412167c5da6f63a398e2 (diff) | |
| download | external_llvm-c8007ab582c49bb6d165e09e6279e441af985ecf.zip external_llvm-c8007ab582c49bb6d165e09e6279e441af985ecf.tar.gz external_llvm-c8007ab582c49bb6d165e09e6279e441af985ecf.tar.bz2  | |
Add intrinsics for the zext / sext instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135476 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
| -rw-r--r-- | lib/Target/XCore/XCoreInstrInfo.td | 20 | 
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/Target/XCore/XCoreInstrInfo.td b/lib/Target/XCore/XCoreInstrInfo.td index db05fff..d310a51 100644 --- a/lib/Target/XCore/XCoreInstrInfo.td +++ b/lib/Target/XCore/XCoreInstrInfo.td @@ -754,7 +754,7 @@ def BL_lu10 : _FLU10<  }  // Two operand short -// TODO eet, eef, tsetmr, sext (reg), zext (reg) +// TODO eet, eef, tsetmr  def NOT : _F2R<(outs GRRegs:$dst), (ins GRRegs:$b),                   "not $dst, $b",                   [(set GRRegs:$dst, (not GRRegs:$b))]>; @@ -764,15 +764,21 @@ def NEG : _F2R<(outs GRRegs:$dst), (ins GRRegs:$b),                   [(set GRRegs:$dst, (ineg GRRegs:$b))]>;  let Constraints = "$src1 = $dst" in { -let neverHasSideEffects = 1 in  def SEXT_rus : _FRUS<(outs GRRegs:$dst), (ins GRRegs:$src1, i32imm:$src2), -                 "sext $dst, $src2", -                 []>; +                      "sext $dst, $src2", +                      [(set GRRegs:$dst, (int_xcore_sext GRRegs:$src1, immBitp:$src2))]>; + +def SEXT_2r : _FRUS<(outs GRRegs:$dst), (ins GRRegs:$src1, GRRegs:$src2), +                     "sext $dst, $src2", +                     [(set GRRegs:$dst, (int_xcore_sext GRRegs:$src1, GRRegs:$src2))]>; -let neverHasSideEffects = 1 in  def ZEXT_rus : _FRUS<(outs GRRegs:$dst), (ins GRRegs:$src1, i32imm:$src2), -                 "zext $dst, $src2", -                 []>; +                      "zext $dst, $src2", +                      [(set GRRegs:$dst, (int_xcore_zext GRRegs:$src1, immBitp:$src2))]>; + +def ZEXT_2r : _FRUS<(outs GRRegs:$dst), (ins GRRegs:$src1, GRRegs:$src2), +                     "zext $dst, $src2", +                     [(set GRRegs:$dst, (int_xcore_zext GRRegs:$src1, GRRegs:$src2))]>;  def ANDNOT_2r : _F2R<(outs GRRegs:$dst), (ins GRRegs:$src1, GRRegs:$src2),                   "andnot $dst, $src2",  | 
