diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-12-10 21:54:21 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-12-10 21:54:21 +0000 |
commit | d5021730c847fc5446f909669f391ec6798591b0 (patch) | |
tree | 20948d14575635ef3675b83edeb3d6efdede8995 /llvm/lib/Target/ARM/ARMInstrInfo.cpp | |
parent | 01fa50ca4fec30c28278596797604682165ba7a3 (diff) | |
download | bcm5719-llvm-d5021730c847fc5446f909669f391ec6798591b0.tar.gz bcm5719-llvm-d5021730c847fc5446f909669f391ec6798591b0.zip |
Preliminary ARM debug support based on patch by Mikael of FlexyCore.
llvm-svn: 60851
Diffstat (limited to 'llvm/lib/Target/ARM/ARMInstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.cpp b/llvm/lib/Target/ARM/ARMInstrInfo.cpp index a809a93bb77..bd16af05bf0 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.cpp +++ b/llvm/lib/Target/ARM/ARMInstrInfo.cpp @@ -900,16 +900,24 @@ unsigned ARMInstrInfo::GetInstSizeInBytes(const MachineInstr *MI) const { unsigned TSFlags = TID.TSFlags; switch ((TSFlags & ARMII::SizeMask) >> ARMII::SizeShift) { - default: + default: { // If this machine instr is an inline asm, measure it. if (MI->getOpcode() == ARM::INLINEASM) return TAI->getInlineAsmLength(MI->getOperand(0).getSymbolName()); if (MI->isLabel()) return 0; - if (MI->getOpcode() == TargetInstrInfo::IMPLICIT_DEF) + switch (MI->getOpcode()) { + default: + assert(0 && "Unknown or unset size field for instr!"); + break; + case TargetInstrInfo::IMPLICIT_DEF: + case TargetInstrInfo::DECLARE: + case TargetInstrInfo::DBG_LABEL: + case TargetInstrInfo::EH_LABEL: return 0; - assert(0 && "Unknown or unset size field for instr!"); + } break; + } case ARMII::Size8Bytes: return 8; // Arm instruction x 2. case ARMII::Size4Bytes: return 4; // Arm instruction. case ARMII::Size2Bytes: return 2; // Thumb instruction. |