diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2011-03-24 21:04:58 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2011-03-24 21:04:58 +0000 |
commit | f170f8bff68556e14e3ab3ea51eef07fe90113ca (patch) | |
tree | ef6d898bf06543f7d3f1ca3ea631b92b3dbf75aa /llvm/lib/MC/MCDisassembler | |
parent | 471f5aa23351b782c252050b4aa50ed9d79003c2 (diff) | |
download | bcm5719-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.h | 4 | ||||
-rw-r--r-- | llvm/lib/MC/MCDisassembler/EDOperand.cpp | 4 |
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; } } |