diff options
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrFormats.td | 1 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.td | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp | 3 | 
3 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrFormats.td b/llvm/lib/Target/ARM/ARMInstrFormats.td index eb613cdda71..f666f4ec73a 100644 --- a/llvm/lib/Target/ARM/ARMInstrFormats.td +++ b/llvm/lib/Target/ARM/ARMInstrFormats.td @@ -664,6 +664,7 @@ class AI3str<bits<4> op, dag oops, dag iops, Format f, InstrItinClass itin,    let Inst{11-8}  = addr{7-4};    // imm7_4/zero    let Inst{7-4}   = op;    let Inst{3-0}   = addr{3-0};    // imm3_0/Rm +  let DecoderMethod = "DecodeAddrMode3Instruction";  }  // Pre-indexed stores diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td index 44acbdc7054..8641d0b26a3 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.td +++ b/llvm/lib/Target/ARM/ARMInstrInfo.td @@ -2365,6 +2365,7 @@ def STRH_PRE  : AI3ldstidx<0b1011, 0, 1, (outs GPR:$Rn_wb),    let Inst{11-8}  = addr{7-4};    // imm7_4/zero    let Inst{3-0}   = addr{3-0};    // imm3_0/Rm    let AsmMatchConverter = "cvtStWriteBackRegAddrMode3"; +  let DecoderMethod = "DecodeAddrMode3Instruction";  }  def STRH_POST : AI3ldstidx<0b1011, 0, 0, (outs GPR:$Rn_wb), @@ -2381,6 +2382,7 @@ def STRH_POST : AI3ldstidx<0b1011, 0, 0, (outs GPR:$Rn_wb),    let Inst{19-16} = addr;    let Inst{11-8}  = offset{7-4};    // imm7_4/zero    let Inst{3-0}   = offset{3-0};    // imm3_0/Rm +  let DecoderMethod = "DecodeAddrMode3Instruction";  }  let mayStore = 1, neverHasSideEffects = 1, hasExtraSrcRegAllocReq = 1 in { diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp index 7de0c236ac1..b3db84947d1 100644 --- a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp +++ b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp @@ -1090,6 +1090,9 @@ static bool DecodeAddrMode3Instruction(llvm::MCInst &Inst, unsigned Insn,      case ARM::STRD:      case ARM::STRD_PRE:      case ARM::STRD_POST: +    case ARM::STRH: +    case ARM::STRH_PRE: +    case ARM::STRH_POST:        if (!DecodeGPRRegisterClass(Inst, Rn, Address, Decoder))          return false;        break;  | 

