summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCDisassembler
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2011-03-24 21:04:58 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2011-03-24 21:04:58 +0000
commitf170f8bff68556e14e3ab3ea51eef07fe90113ca (patch)
treeef6d898bf06543f7d3f1ca3ea631b92b3dbf75aa /llvm/lib/MC/MCDisassembler
parent471f5aa23351b782c252050b4aa50ed9d79003c2 (diff)
downloadbcm5719-llvm-f170f8bff68556e14e3ab3ea51eef07fe90113ca.tar.gz
bcm5719-llvm-f170f8bff68556e14e3ab3ea51eef07fe90113ca.zip
Add asm parsing support w/ testcases for strex/ldrex family of instructions
llvm-svn: 128236
Diffstat (limited to 'llvm/lib/MC/MCDisassembler')
-rw-r--r--llvm/lib/MC/MCDisassembler/EDInfo.h4
-rw-r--r--llvm/lib/MC/MCDisassembler/EDOperand.cpp4
2 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/MC/MCDisassembler/EDInfo.h b/llvm/lib/MC/MCDisassembler/EDInfo.h
index 627c06641db..ad572826313 100644
--- a/llvm/lib/MC/MCDisassembler/EDInfo.h
+++ b/llvm/lib/MC/MCDisassembler/EDInfo.h
@@ -35,6 +35,7 @@ enum OperandTypes {
kOperandTypeARMAddrMode5,
kOperandTypeARMAddrMode6,
kOperandTypeARMAddrMode6Offset,
+ kOperandTypeARMAddrMode7,
kOperandTypeARMAddrModePC,
kOperandTypeARMRegisterList,
kOperandTypeARMTBAddrMode,
@@ -51,7 +52,8 @@ enum OperandTypes {
kOperandTypeThumb2AddrModeImm12,
kOperandTypeThumb2AddrModeSoReg,
kOperandTypeThumb2AddrModeImm8s4,
- kOperandTypeThumb2AddrModeImm8s4Offset
+ kOperandTypeThumb2AddrModeImm8s4Offset,
+ kOperandTypeThumb2AddrModeReg
};
enum OperandFlags {
diff --git a/llvm/lib/MC/MCDisassembler/EDOperand.cpp b/llvm/lib/MC/MCDisassembler/EDOperand.cpp
index 2b0c73e8059..04b21cb3592 100644
--- a/llvm/lib/MC/MCDisassembler/EDOperand.cpp
+++ b/llvm/lib/MC/MCDisassembler/EDOperand.cpp
@@ -73,6 +73,8 @@ EDOperand::EDOperand(const EDDisassembler &disassembler,
case kOperandTypeThumb2AddrModeImm8Offset:
case kOperandTypeARMTBAddrMode:
case kOperandTypeThumb2AddrModeImm8s4Offset:
+ case kOperandTypeARMAddrMode7:
+ case kOperandTypeThumb2AddrModeReg:
numMCOperands = 1;
break;
case kOperandTypeThumb2SoReg:
@@ -256,6 +258,7 @@ int EDOperand::isMemory() {
case kOperandTypeARMAddrMode4:
case kOperandTypeARMAddrMode5:
case kOperandTypeARMAddrMode6:
+ case kOperandTypeARMAddrMode7:
case kOperandTypeARMAddrModePC:
case kOperandTypeARMBranchTarget:
case kOperandTypeThumbAddrModeS1:
@@ -269,6 +272,7 @@ int EDOperand::isMemory() {
case kOperandTypeThumb2AddrModeImm12:
case kOperandTypeThumb2AddrModeSoReg:
case kOperandTypeThumb2AddrModeImm8s4:
+ case kOperandTypeThumb2AddrModeReg:
return 1;
}
}
OpenPOWER on IntegriCloud