| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
Add more complete sanity check for LdStFrm instructions where if IBit (Inst{25})
is 1, Inst{4} should be 0. Otherwise, we should reject the insn as invalid.
rdar://problem/9239347
rdar://problem/9239467
llvm-svn: 128977
|
|
|
|
|
|
|
|
|
|
| |
illegal register
encodings for DisassembleArithMiscFrm().
rdar://problem/9238659
llvm-svn: 128958
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qd -> bit[12] == 0
Qn -> bit[16] == 0
Qm -> bit[0] == 0
If one of these bits is 1, the instruction is UNDEFINED.
rdar://problem/9238399
rdar://problem/9238445
llvm-svn: 128949
|
|
|
|
|
|
|
|
| |
Added checks for regs which should not be 15.
rdar://problem/9237734
llvm-svn: 128945
|
|
|
|
|
|
|
|
|
| |
For register-controlled shifts, we should check that the encoding constraint
Inst{7} = 0 and Inst{4} = 1 is satisfied.
rdar://problem/9237693
llvm-svn: 128941
|
|
|
|
|
|
|
|
| |
Modify DisassembleCoprocessor() of ARMDisassemblerCore.cpp to react to the change.
rdar://problem/9236873
llvm-svn: 128922
|
|
|
|
| |
llvm-svn: 128913
|
|
|
|
| |
llvm-svn: 128909
|
|
|
|
|
|
|
|
|
|
| |
An alternative syntax is available for a modified immediate constant that permits the programmer to specify
the encoding directly. In this syntax, #<const> is instead written as #<byte>,#<rot>, where:
<byte> is the numeric value of abcdefgh, in the range 0-255
<rot> is twice the numeric value of rotation, an even number in the range 0-30.
llvm-svn: 128897
|
|
|
|
|
|
|
|
|
| |
if dLo == 15 || dHi == 15 || n == 15 || m == 15 then UNPREDICTABLE;
if dHi == dLo then UNPREDICTABLE;
rdar://problem/9230202
llvm-svn: 128895
|
|
|
|
|
|
|
|
|
| |
rdar://problem/9230801 ARM disassembler discrepancy: erroneously accepting SRS
Plus add invalid-RFEorLDMIA-arm.txt test which should have been checked in with
http://llvm.org/viewvc/llvm-project?view=rev&revision=128859.
llvm-svn: 128864
|
|
|
|
|
|
| |
rdar://problem/9225433
llvm-svn: 128841
|
|
|
|
|
|
|
|
|
|
| |
operand in am2offset;
instead of the second operand in addrmode_imm12.
rdar://problem/9225289
llvm-svn: 128757
|
|
|
|
|
|
| |
rdar://problem/9224276
llvm-svn: 128749
|
|
|
|
|
|
|
|
| |
UNPREDICTABLE.
rdar://problem/9224120
llvm-svn: 128748
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
definition so that
all the instruction have:
let Inst{31-27} = 0b1110; // non-predicated
Before, the ARM decoder was confusing:
> 0x40 0xf3 0xb8 0x80
as:
Opcode=16 Name=ADCSSrs Format=ARM_FORMAT_DPSOREGFRM(5)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-------------------------------------------------------------------------------------------------
| 1: 0: 0: 0| 0: 0: 0: 0| 1: 0: 1: 1| 1: 0: 0: 0| 1: 1: 1: 1| 0: 0: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0|
-------------------------------------------------------------------------------------------------
adcs pc, r8, r0, asr #6
since the cond field for ADCSSrs is a wild card, and so is ADCrs, with the ADCSSrs having Inst{20} as '1'.
Now, the AR decoder behaves correctly:
> 0x40 0xf3 0xb8 0x80
> END
Executing command: /Volumes/data/lldb/llvm/Debug+Asserts/bin/llvm-mc -disassemble -triple=arm-apple-darwin -debug-only=arm-disassembler mc-input.txt
Opcode=19 Name=ADCrs Format=ARM_FORMAT_DPSOREGFRM(5)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-------------------------------------------------------------------------------------------------
| 1: 0: 0: 0| 0: 0: 0: 0| 1: 0: 1: 1| 1: 0: 0: 0| 1: 1: 1: 1| 0: 0: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0|
-------------------------------------------------------------------------------------------------
adcshi pc, r8, r0, asr #6
>
rdar://problem/9223094
llvm-svn: 128746
|
|
|
|
|
|
|
|
| |
should reject the instruction
as invalid.
llvm-svn: 128734
|
|
|
|
|
|
|
|
| |
$addrmode_imm12 => (ops GPR:$base, i32imm:$offsimm).
rdar://problem/9219356
llvm-svn: 128722
|
|
|
|
|
|
| |
amounts to an UNDEFINED instruction.
llvm-svn: 128668
|
|
|
|
|
|
|
|
| |
Inst{4} = 0.
rdar://problem/9213022
llvm-svn: 128662
|
|
|
|
|
|
|
|
| |
A8.6.23 BLX (immediate)
rdar://problem/9212921
llvm-svn: 128644
|
|
|
|
| |
llvm-svn: 128517
|
|
|
|
| |
llvm-svn: 128494
|
|
|
|
| |
llvm-svn: 128487
|
|
|
|
|
|
|
|
| |
The STC_OPTION and STC2_OPTION instructions should have their coprocessor option enclosed in {}.
rdar://problem/9200661
llvm-svn: 128478
|
|
|
|
| |
llvm-svn: 128477
|
|
|
|
| |
llvm-svn: 128476
|
|
|
|
|
|
| |
actually exist.
llvm-svn: 128461
|
|
|
|
|
|
|
|
| |
some test cases.
Add comments to ThumbDisassemblerCore.h for recent change made for t2PLD disassembly.
llvm-svn: 128417
|
|
|
|
| |
llvm-svn: 128322
|
|
|
|
| |
llvm-svn: 128306
|
|
|
|
| |
llvm-svn: 128305
|
|
|
|
|
|
|
|
|
|
| |
GPRRegClassID.
Also add some test cases.
rdar://problem/9189829
llvm-svn: 128304
|
|
|
|
|
|
|
|
| |
RegClass. Add two test cases.
rdar://problem/9182892
llvm-svn: 128299
|
|
|
|
|
|
| |
Add two test cases.
llvm-svn: 128295
|
|
|
|
|
|
|
|
| |
recent change to
t2LDREX/t2STREX instructions. Add two test cases.
llvm-svn: 128293
|
|
|
|
|
|
|
|
| |
Modify the disassembler to handle that.
rdar://problem/9184053
llvm-svn: 128285
|
|
|
|
|
|
| |
rdar://problem/9186136
llvm-svn: 128283
|
|
|
|
|
|
|
|
| |
register classes were changed),
modify the comment to be up-to-date, and add a test case for A8.6.66 LDRD (immediate) Encoding T1.
llvm-svn: 128252
|
|
|
|
|
|
| |
instructions, and add a test case for that.
llvm-svn: 128249
|
|
|
|
|
|
|
|
|
| |
stale since
the change to ("tLDMIA", "tLDMIA_UPD"). Update the conflict resolution code and add
test cases for that.
llvm-svn: 128247
|
|
|
|
|
|
|
| |
According to A8.6.189 STM/STMIA/STMEA (Encoding T1), there's only tSTMIA_UPD available.
Ignore tSTMIA for the decoder emitter and add a test case for that.
llvm-svn: 128246
|
|
|
|
| |
llvm-svn: 128243
|
|
|
|
|
|
|
| |
These instructions were changed to not embed the addressing mode within the MC instructions
We also need to update the corresponding assert stmt. Also add a test case.
llvm-svn: 128240
|
|
|
|
| |
llvm-svn: 128238
|
|
|
|
|
|
|
|
| |
fail 'test-llvm'.
These two are test cases which should result in 'invalid instruction encoding' from running llvm-mc -disassemble.
llvm-svn: 128235
|
|
|
|
|
|
|
|
|
| |
was fooled.
Set the encoding bits to {0,?,?,0}, not 0. Plus delegate the disassembly of ADR to
the more generic ADDri/SUBri instructions, and add a test case for that.
llvm-svn: 128234
|
|
|
|
|
|
|
|
| |
ARMDisassemblerCore.cpp to disassemble the
VORRiv*i* instructions properly within the DisassembleN1RegModImmFrm() function. Add a test case.
llvm-svn: 128226
|
|
|
|
|
|
|
|
| |
encoding,
a test case of invalid CPS3p encoding and one for invalid VLDMSDB due to regs out of range.
llvm-svn: 128220
|
|
|
|
|
|
|
| |
These instructions were changed to not embed the addressing mode within the MC instructions
We also need to update the corresponding assert stmt. Also add two test cases.
llvm-svn: 128191
|