summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMInstrInfo.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2008-12-10 21:54:21 +0000
committerEvan Cheng <evan.cheng@apple.com>2008-12-10 21:54:21 +0000
commitd5021730c847fc5446f909669f391ec6798591b0 (patch)
tree20948d14575635ef3675b83edeb3d6efdede8995 /llvm/lib/Target/ARM/ARMInstrInfo.cpp
parent01fa50ca4fec30c28278596797604682165ba7a3 (diff)
downloadbcm5719-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.cpp14
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.
OpenPOWER on IntegriCloud