diff options
| author | Johnny Chen <johnny.chen@apple.com> | 2011-02-08 18:58:31 +0000 |
|---|---|---|
| committer | Johnny Chen <johnny.chen@apple.com> | 2011-02-08 18:58:31 +0000 |
| commit | 86e48b6940cc744dbb5ca8f91f6a3d9a4bf254b6 (patch) | |
| tree | 9ff87d9b9295c456fef620586f4fba6a9f33ab39 | |
| parent | 17499351735563fa106044c8336f4114f351556f (diff) | |
| download | bcm5719-llvm-86e48b6940cc744dbb5ca8f91f6a3d9a4bf254b6.tar.gz bcm5719-llvm-86e48b6940cc744dbb5ca8f91f6a3d9a4bf254b6.zip | |
Add missing implementation for "BL, BLX (immediate)" Encoding A1.
llvm-svn: 125103
| -rw-r--r-- | lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp index 59bb0b00958..57abbc5951e 100644 --- a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp +++ b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp @@ -784,6 +784,13 @@ EmulateInstructionARM::EmulateBLXImmediate (ARMEncoding encoding) context.arg2 = eModeARM; // target instruction set break; } + case eEncodingA1: + lr = pc + 4; // return address + imm32 = llvm::SignExtend32<26>(Bits32(opcode, 23, 0) << 2); + target = pc + 8 + imm32; + context.arg1 = 8 + imm32; // signed offset + context.arg2 = eModeARM; // target instruction set + break; case eEncodingA2: lr = pc + 4; // return address imm32 = llvm::SignExtend32<26>(Bits32(opcode, 23, 0) << 2 | Bits32(opcode, 24, 24) << 1); |

