diff options
| author | Jim Grosbach <grosbach@apple.com> | 2011-07-22 17:52:23 +0000 | 
|---|---|---|
| committer | Jim Grosbach <grosbach@apple.com> | 2011-07-22 17:52:23 +0000 | 
| commit | 39f9388a9d809496007036b3a7473d86e3fb61fd (patch) | |
| tree | e0f53eeb110074b0585c0184461a08fcaf5afeee /llvm/lib/Target/ARM | |
| parent | 9afae0d01bd79b0a0022ad511cb8d1f8389bb1a1 (diff) | |
| download | bcm5719-llvm-39f9388a9d809496007036b3a7473d86e3fb61fd.tar.gz bcm5719-llvm-39f9388a9d809496007036b3a7473d86e3fb61fd.zip  | |
Thumb assembly support for SETEND instruction.
llvm-svn: 135778
Diffstat (limited to 'llvm/lib/Target/ARM')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrThumb.td | 18 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h | 9 | 
2 files changed, 11 insertions, 16 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrThumb.td b/llvm/lib/Target/ARM/ARMInstrThumb.td index 7452addc15d..cb242cec2c0 100644 --- a/llvm/lib/Target/ARM/ARMInstrThumb.td +++ b/llvm/lib/Target/ARM/ARMInstrThumb.td @@ -245,23 +245,13 @@ def tBKPT : T1I<(outs), (ins i32imm:$val), NoItinerary, "bkpt\t$val",    let Inst{7-0} = val;  } -def tSETENDBE : T1I<(outs), (ins), NoItinerary, "setend\tbe", -                    [/* For disassembly only; pattern left blank */]>, -                T1Encoding<0b101101> { +def tSETEND : T1I<(outs), (ins setend_op:$end), NoItinerary, "setend\t$end", +                  []>, T1Encoding<0b101101> { +  bits<1> end;    // A8.6.156    let Inst{9-5} = 0b10010;    let Inst{4}   = 1; -  let Inst{3}   = 1;            // Big-Endian -  let Inst{2-0} = 0b000; -} - -def tSETENDLE : T1I<(outs), (ins), NoItinerary, "setend\tle", -                    [/* For disassembly only; pattern left blank */]>, -                T1Encoding<0b101101> { -  // A8.6.156 -  let Inst{9-5} = 0b10010; -  let Inst{4}   = 1; -  let Inst{3}   = 0;            // Little-Endian +  let Inst{3}   = end;    let Inst{2-0} = 0b000;  } diff --git a/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h b/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h index 4f97def26e2..85d62be60c1 100644 --- a/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h +++ b/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h @@ -798,8 +798,7 @@ static bool DisassembleThumb1PushPop(MCInst &MI, unsigned Opcode, uint32_t insn,  // tBKPT:            imm8  // tNOP, tSEV, tYIELD, tWFE, tWFI:  //   no operand (except predicate pair) -// tSETENDBE, tSETENDLE, : -//   no operand +// tSETEND: i1  // Others:           tRd tRn  static bool DisassembleThumb1Misc(MCInst &MI, unsigned Opcode, uint32_t insn,      unsigned short NumOps, unsigned &NumOpsAdded, BO B) { @@ -860,6 +859,12 @@ static bool DisassembleThumb1Misc(MCInst &MI, unsigned Opcode, uint32_t insn,      return true;    } +  if (Opcode == ARM::tSETEND) { +    MI.addOperand(MCOperand::CreateImm(slice(insn, 3, 1))); +    NumOpsAdded = 1; +    return true; +  } +    assert(NumOps >= 2 && OpInfo[0].RegClass == ARM::tGPRRegClassID &&           (OpInfo[1].RegClass < 0 || OpInfo[1].RegClass==ARM::tGPRRegClassID)           && "Expect >=2 operands");  | 

