diff options
| author | Richard Barton <richard.barton@arm.com> | 2012-06-06 09:12:53 +0000 |
|---|---|---|
| committer | Richard Barton <richard.barton@arm.com> | 2012-06-06 09:12:53 +0000 |
| commit | f1ef87ddbbc1a62111adcc7ef31f4a28892ebcb9 (patch) | |
| tree | 6b8e1ea3506724f4881147fe2c613f7d18cdafd0 /llvm | |
| parent | 0baec549a3f49d8c04a0092917f758cc89ef238d (diff) | |
| download | bcm5719-llvm-f1ef87ddbbc1a62111adcc7ef31f4a28892ebcb9.tar.gz bcm5719-llvm-f1ef87ddbbc1a62111adcc7ef31f4a28892ebcb9.zip | |
Correct decoder for T1 conditional B encoding
llvm-svn: 158055
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp | 4 | ||||
| -rw-r--r-- | llvm/test/MC/Disassembler/ARM/thumb1.txt | 11 |
2 files changed, 12 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp index fd602aa7396..66ea1171ff9 100644 --- a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp +++ b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp @@ -3463,9 +3463,9 @@ static DecodeStatus DecodeT2SOImm(MCInst &Inst, unsigned Val, static DecodeStatus DecodeThumbBCCTargetOperand(MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder){ - if (!tryAddingSymbolicOperand(Address, Address + SignExtend32<8>(Val<<1) + 4, + if (!tryAddingSymbolicOperand(Address, Address + SignExtend32<9>(Val<<1) + 4, true, 2, Inst, Decoder)) - Inst.addOperand(MCOperand::CreateImm(SignExtend32<8>(Val << 1))); + Inst.addOperand(MCOperand::CreateImm(SignExtend32<9>(Val << 1))); return MCDisassembler::Success; } diff --git a/llvm/test/MC/Disassembler/ARM/thumb1.txt b/llvm/test/MC/Disassembler/ARM/thumb1.txt index 825b2be9150..5b702623109 100644 --- a/llvm/test/MC/Disassembler/ARM/thumb1.txt +++ b/llvm/test/MC/Disassembler/ARM/thumb1.txt @@ -1,4 +1,4 @@ -# RUN: llvm-mc -triple=thumbv6-apple-darwin -disassemble < %s | FileCheck %s +# RUN: llvm-mc -triple=thumbv6-apple-darwin -disassemble -show-encoding < %s | FileCheck %s #------------------------------------------------------------------------------ # ADC (register) @@ -83,6 +83,15 @@ 0xb1 0x43 #------------------------------------------------------------------------------ +# B +#------------------------------------------------------------------------------ +# CHECK: bls #128 @ encoding: [0x40,0xd9] +# CHECK: beq #-256 @ encoding: [0x80,0xd0] + +0x40 0xd9 +0x80 0xd0 + +#------------------------------------------------------------------------------ # BKPT #------------------------------------------------------------------------------ # CHECK: bkpt #0 |

