| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
PR9648
rdar://problem/9257634
llvm-svn: 129146
|
|
|
|
|
|
| |
Add more test cases to exercise the logical branches related to the above change.
llvm-svn: 129117
|
|
|
|
|
|
|
|
| |
extend instructions.
Add some test cases.
llvm-svn: 129098
|
|
|
|
| |
llvm-svn: 129096
|
|
|
|
|
|
| |
And two test cases.
llvm-svn: 129090
|
|
|
|
|
|
| |
rdar://problem/9246844
llvm-svn: 129050
|
|
|
|
|
|
|
|
|
|
| |
checking for register values
for USAD8 and USADA8.
rdar://problem/9247060
llvm-svn: 129047
|
|
|
|
|
|
| |
rdar://problem/9246650
llvm-svn: 129042
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ARM disassembler should reject invalid (type, align) encodings as invalid instructions.
So, instead of:
Opcode=1641 Name=VST2b32_UPD Format=ARM_FORMAT_NLdSt(30)
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: 1: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0| 0: 0: 1: 1| 0: 0: 0: 0| 1: 0: 0: 1| 1: 0: 1: 1| 0: 0: 1: 1|
-------------------------------------------------------------------------------------------------
vst2.32 {d0, d2}, [r3, :256], r3
we now have:
Opcode=1641 Name=VST2b32_UPD Format=ARM_FORMAT_NLdSt(30)
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: 1: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0| 0: 0: 1: 1| 0: 0: 0: 0| 1: 0: 0: 1| 1: 0: 1: 1| 0: 0: 1: 1|
-------------------------------------------------------------------------------------------------
mc-input.txt:1:1: warning: invalid instruction encoding
0xb3 0x9 0x3 0xf4
^
llvm-svn: 129033
|
|
|
|
|
|
|
|
|
|
| |
Since these "Advanced SIMD and VFP" instructions have more specfic encoding bits
specified, if coproc == 10 or 11, we should reject the insn as invalid.
rdar://problem/9239922
rdar://problem/9239596
llvm-svn: 129027
|
|
|
|
|
|
|
|
|
| |
Also set the encoding bits (for A8.6.303, A8.6.328, A8.6.329) Inst{3-0} = 0b0000,
in class NVLaneOp.
rdar://problem/9240648
llvm-svn: 129015
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Finish what r128736 started.
llvm-svn: 128903
|
|
|
|
|
|
|
|
|
| |
if dLo == 15 || dHi == 15 || n == 15 || m == 15 then UNPREDICTABLE;
if dHi == dLo then UNPREDICTABLE;
rdar://problem/9230202
llvm-svn: 128895
|
|
|
|
|
|
|
|
|
| |
rdar://problem/9229922 ARM disassembler discrepancy: erroneously accepting RFE
Also LDC/STC instructions are predicated while LDC2/STC2 instructions are not, fixed while
doing regression testings.
llvm-svn: 128859
|
|
|
|
|
|
| |
rdar://problem/9225433
llvm-svn: 128841
|
|
|
|
|
|
|
|
|
|
| |
also fix the encoding of the later.
- Add a new encoding bit to describe the index mode used in AM3.
- Teach printAddrMode3Operand to check by the addressing mode which
index mode to print.
- Testcases.
llvm-svn: 128832
|
|
|
|
|
|
|
|
|
|
| |
operand in am2offset;
instead of the second operand in addrmode_imm12.
rdar://problem/9225289
llvm-svn: 128757
|
|
|
|
|
|
|
|
| |
should reject the instruction
as invalid.
llvm-svn: 128734
|
|
|
|
|
|
|
|
| |
$addrmode_imm12 => (ops GPR:$base, i32imm:$offsimm).
rdar://problem/9219356
llvm-svn: 128722
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
all LDR/STR changes and left them to a future patch. Passing all
checks now.
- Implement asm parsing support for LDRT, LDRBT, STRT, STRBT and
fix the encoding wherever is possible.
- Add a new encoding bit to describe the index mode used and teach
printAddrMode2Operand to check by the addressing mode which index
mode to print.
- Testcases
llvm-svn: 128689
|
|
|
|
|
|
|
|
| |
A8.6.23 BLX (immediate)
rdar://problem/9212921
llvm-svn: 128644
|
|
|
|
| |
llvm-svn: 128635
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Implement asm parsing support for LDRT, LDRBT, STRT, STRBT and
{STR,LDC}{2}_{PRE,POST} fixing the encoding wherever is possible.
- Move all instructions which use am2offset without a pattern to use
addrmode2.
- Add a new encoding bit to describe the index mode used and teach
printAddrMode2Operand to check by the addressing mode which index
mode to print.
- Testcases
llvm-svn: 128632
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
GPRRegClassID.
Also add some test cases.
rdar://problem/9189829
llvm-svn: 128304
|
|
|
|
|
|
|
|
| |
RegClass. Add two test cases.
rdar://problem/9182892
llvm-svn: 128299
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 128243
|
|
|
|
| |
llvm-svn: 128241
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DisassembleMiscFrm() function.
Fixed rdar://problem/9179416 ARM disassembler crash: "Unknown imod operand" (fuzz testing)
Opcode=98 Name=CPS3p Format=ARM_FORMAT_MISCFRM(26)
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: 1: 1: 1| 0: 0: 0: 1| 0: 0: 0: 0| 0: 0: 1: 0| 0: 0: 0: 1| 1: 1: 0: 0| 1: 0: 0: 1| 0: 0: 1: 1|
-------------------------------------------------------------------------------------------------
Before:
cpsUnknown imod operand
UNREACHABLE executed at /Volumes/data/lldb/llvm/lib/Target/ARM/InstPrinter/../ARMBaseInfo.h:123!
After:
/Volumes/data/Radar/9179416/mc-input-arm.txt:1:1: warning: invalid instruction encoding
0x93 0x1c 0x2 0xf1
^
llvm-svn: 128192
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
instructions
were incomplete. The assert stmt needs to be updated and the operand index incrment is wrong.
Fix the bad logic and add some sanity checking to detect bad instruction encoding;
and add a test case.
llvm-svn: 128186
|
|
|
|
|
|
|
|
| |
instruction.
Change inspired by llvm-bug 9530 submitted by Jyun-Yan You.
llvm-svn: 128122
|
|
|
|
|
|
|
|
|
|
|
| |
VFP Load/Store Multiple Instructions used to embed the IA/DB addressing mode within the
MC instruction; that has been changed so that now, for example, VSTMDDB_UPD and VSTMDIA_UPD
are two instructions. Update the ARMDisassemblerCore.cpp's DisassembleVFPLdStMulFrm()
to reflect the change.
Also add a test case.
llvm-svn: 128103
|