diff options
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.td | 32 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrThumb.td | 4 | 
2 files changed, 16 insertions, 20 deletions
| diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td index 17e7365962b..e53abefd72e 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.td +++ b/llvm/lib/Target/ARM/ARMInstrInfo.td @@ -617,15 +617,13 @@ let isCall = 1, Itinerary = IIC_Br,      let Inst{27-20} = 0b00010010;    } -  let Uses = [LR] in { -    // ARMv4T -    def BX : ABXIx2<(outs), (ins GPR:$func, variable_ops), -                     "mov lr, pc\n\tbx $func", -                    [(ARMcall_nolink GPR:$func)]>, Requires<[IsNotDarwin]> { -      let Inst{7-4}   = 0b0001; -      let Inst{19-8}  = 0b111111111111; -      let Inst{27-20} = 0b00010010; -    } +  // ARMv4T +  def BX : ABXIx2<(outs), (ins GPR:$func, variable_ops), +                   "mov lr, pc\n\tbx $func", +                  [(ARMcall_nolink GPR:$func)]>, Requires<[IsNotDarwin]> { +    let Inst{7-4}   = 0b0001; +    let Inst{19-8}  = 0b111111111111; +    let Inst{27-20} = 0b00010010;    }  } @@ -650,15 +648,13 @@ let isCall = 1, Itinerary = IIC_Br,      let Inst{27-20} = 0b00010010;    } -  let Uses = [LR] in { -    // ARMv4T -    def BXr9 : ABXIx2<(outs), (ins GPR:$func, variable_ops), -                     "mov lr, pc\n\tbx $func", -                    [(ARMcall_nolink GPR:$func)]>, Requires<[IsDarwin]> { -      let Inst{7-4}   = 0b0001; -      let Inst{19-8}  = 0b111111111111; -      let Inst{27-20} = 0b00010010; -    } +  // ARMv4T +  def BXr9 : ABXIx2<(outs), (ins GPR:$func, variable_ops), +                   "mov lr, pc\n\tbx $func", +                  [(ARMcall_nolink GPR:$func)]>, Requires<[IsARM, IsDarwin]> { +    let Inst{7-4}   = 0b0001; +    let Inst{19-8}  = 0b111111111111; +    let Inst{27-20} = 0b00010010;    }  } diff --git a/llvm/lib/Target/ARM/ARMInstrThumb.td b/llvm/lib/Target/ARM/ARMInstrThumb.td index f2c5a4654ad..b1b97ad6ae6 100644 --- a/llvm/lib/Target/ARM/ARMInstrThumb.td +++ b/llvm/lib/Target/ARM/ARMInstrThumb.td @@ -180,7 +180,7 @@ let isCall = 1,                    [(ARMtcall tGPR:$func)]>, Requires<[HasV5T]>;    // ARMv4T    def tBX : T1Ix2<(outs), (ins tGPR:$func, variable_ops), -                  "cpy lr, pc\n\tbx $func", +                  "mov lr, pc\n\tbx $func",                    [(ARMcall_nolink tGPR:$func)]>;  } @@ -196,7 +196,7 @@ let isBranch = 1, isTerminator = 1 in {    def tBR_JTr : T1JTI<(outs),                        (ins tGPR:$target, jtblock_operand:$jt, i32imm:$id), -                      "cpy pc, $target \n\t.align\t2\n$jt", +                      "mov pc, $target \n\t.align\t2\n$jt",                        [(ARMbrjt tGPR:$target, tjumptable:$jt, imm:$id)]>;    }  } | 

