Owen Anderson
|
21733e8f80
|
Fix an incorrect decoder test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140579 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-26 23:08:34 +00:00 |
|
Owen Anderson
|
1f24002ed4
|
Fix incorrect disassembly test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140423 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-23 22:05:54 +00:00 |
|
Owen Anderson
|
0781c1f700
|
Post-index loads/stores in still need to print the post-indexed immediate, even if it's zero, to distinguish them from non-post-indexed instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140420 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-23 21:26:40 +00:00 |
|
Owen Anderson
|
31d485ec9a
|
Reapply r140412 (Thumb2 reg-reg loads cannot target SP or PC), with invalid testcases updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140415 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-23 21:07:25 +00:00 |
|
Owen Anderson
|
e136872970
|
Print out immediate offset versions of PC-relative load/store instructions as [pc, #123] rather than simply #123.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140283 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-21 23:44:46 +00:00 |
|
Owen Anderson
|
9d1a3dea15
|
Port over more Thumb2 encoding tests to decoding tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140152 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-20 17:44:48 +00:00 |
|
Owen Anderson
|
ecd1c55790
|
Handle STRT (and friends) like LDRT (and friends) for decoding purposes. Port over additional encoding tests to decoding tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140032 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-19 18:07:10 +00:00 |
|
Owen Anderson
|
be290af0d8
|
Add a testcase for another corner-case decoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139970 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-16 23:15:29 +00:00 |
|
Owen Anderson
|
89db0f690c
|
Fix disassembly of Thumb2 BFI instructions with bit range of [0, 32).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139964 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-16 22:29:48 +00:00 |
|
Owen Anderson
|
8a28bdcbcc
|
Add fixed bits to correctly distinguish Thumb2 SSAT/SSAT16's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139958 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-16 22:17:02 +00:00 |
|
Owen Anderson
|
705b48ff86
|
Fix disassembly of Thumb2 LDRSH with a #-0 offset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139943 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-16 21:08:33 +00:00 |
|
Owen Anderson
|
a610d619ce
|
Port over more Thumb2 assembly tests to disassembly tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139915 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-16 17:56:04 +00:00 |
|
Owen Anderson
|
1070278efa
|
Port over more Thumb2 assembly tests to disassembly tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139912 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-16 17:22:48 +00:00 |
|
Owen Anderson
|
13b8d1e396
|
Make use of Eli's FileCheck sorcery to improve this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139645 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-13 21:37:50 +00:00 |
|
Owen Anderson
|
7782a58b87
|
Correct disassembly printing of Thumb2 post-incremented LDRD and STRD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139639 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-13 20:46:26 +00:00 |
|
Owen Anderson
|
cd00dc6852
|
Thumb2 POP's don't allow the PC as an operand, and PUSH's don't allow the SP either.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139542 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-12 21:28:46 +00:00 |
|
Owen Anderson
|
a3157b4026
|
Port more encoding tests to decoding tests, and correct an improper Thumb2 pre-indexed load decoding this uncovered.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139522 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-12 18:56:30 +00:00 |
|
Owen Anderson
|
921d01ae1f
|
LDM writeback is not allowed if Rn is in the target register list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139432 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-09 23:13:33 +00:00 |
|
Owen Anderson
|
08fef885eb
|
Fix assembly/disassembly of Thumb2 ADR instructions with immediate operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139422 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-09 22:24:36 +00:00 |
|
Owen Anderson
|
d2fc31b3f7
|
Soft fail CBZ/CBNZ in the disassembler if they appear inside an IT block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139328 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-08 22:42:49 +00:00 |
|
Jim Grosbach
|
a77295db19
|
Thumb2 assembly parsing and encoding for LDRD(immediate).
Refactor operand handling for STRD as well. Tests for that forthcoming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139322 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-08 22:07:06 +00:00 |
|
Owen Anderson
|
8a83f71301
|
Create Thumb2 versions of STC/LDC, and reenable the relevant tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139256 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-07 21:10:42 +00:00 |
|
James Molloy
|
a5d5856854
|
Second of a three-patch series aiming to fix MSR/MRS on Cortex-M. This adds predicate checking to the Disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139250 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-07 19:42:28 +00:00 |
|
Jim Grosbach
|
90502888f2
|
Update test for 139243
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139244 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-07 18:40:06 +00:00 |
|
Owen Anderson
|
6de3c6f1a9
|
Port more assembler tests over to disassembler tests, and fix a minor logic error that exposed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139240 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-07 17:55:19 +00:00 |
|
Owen Anderson
|
39950595f7
|
Port more encoding tests over to Thumb2 decoding tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139171 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-06 20:26:34 +00:00 |
|
Owen Anderson
|
eaca928a37
|
Fix issues with disassembly of IT instructions involving condition codes other the EQ/NE. Discovered by roundtrip testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138840 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-30 22:58:27 +00:00 |
|
Owen Anderson
|
3318d9c27d
|
Port Thumb2 assembler tests over to disassembler tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138822 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-30 20:03:11 +00:00 |
|
Owen Anderson
|
f1eab597b2
|
Improve encoding support for BLX with immediat eoperands, and fix a BLX decoding bug this uncovered.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138675 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-26 23:32:08 +00:00 |
|
Owen Anderson
|
9ab0f25fc1
|
invalid-LDR_PRE-arm.txt was already passing, but for the wrong reasons. We were failing to specify enough fixed bits of LDR_PRE/LDRB_PRE, resulting in decoding conflicts. Separate them into immediate vs. register versions, allowing us to specify the necessary fixed bits. This in turn results in the test being decoded properly, and being rejected as UNPREDICTABLE rather than a hard failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138653 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-26 20:43:14 +00:00 |
|
Owen Anderson
|
96425c8464
|
Support an extension of ARM asm syntax to allow immediate operands to ADR instructions. This is helpful for disassembler testing, and indeed exposed a disassembler bug that is also fixed here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138635 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-26 18:09:22 +00:00 |
|
Owen Anderson
|
5a18f20dab
|
Add a testcase for r138625.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138626 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-26 06:45:08 +00:00 |
|
Owen Anderson
|
99906830e8
|
Port over additional encoding tests to decoding tests, and fix an operand ordering bug this exposed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138575 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-25 18:30:18 +00:00 |
|
Owen Anderson
|
ddaa513fce
|
Port over more encoding tests to decoding tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138441 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-24 17:08:34 +00:00 |
|
Owen Anderson
|
82265a2c72
|
Fix decoding of Thumb2 prefetch instructions, which account for all the remaining Thumb2 decoding failures found by randomized testing so far.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138341 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-23 17:51:38 +00:00 |
|
Owen Anderson
|
e732cb0043
|
Fix two more instances of mis-matched operand names breaking disassembly. Found by randomized testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138337 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-23 17:37:32 +00:00 |
|
Owen Anderson
|
b4ff9698bd
|
Port more assemble tests over to disassembly tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138336 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-23 17:26:35 +00:00 |
|
Owen Anderson
|
c6788c83b4
|
t2SMLAD is a four-register instruction, not a three-register one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138301 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 23:31:45 +00:00 |
|
Owen Anderson
|
22d35086fe
|
Correct operand naming of t2USAT16 to allow proper decoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138300 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 23:27:47 +00:00 |
|
Owen Anderson
|
2379fc235f
|
Match operand naming to allow correct decoding of t2LDRSH_POST.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138298 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 23:22:05 +00:00 |
|
Owen Anderson
|
2c9f83533b
|
Provide a correct decoder hook for Thumb2 shifted registers. Found by randomized testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138292 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 23:10:16 +00:00 |
|
Owen Anderson
|
838130e3b9
|
Provide operand encoding information for half-precision VCVT instructions. Found by randomized testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138273 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 21:34:00 +00:00 |
|
Owen Anderson
|
357ec6850b
|
Fix decoding of VMOVSRR and VMOVRRS, which account for the overwhelming majority of decoder crashes detected by randomized testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138269 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 20:27:12 +00:00 |
|
Owen Anderson
|
2cbf210450
|
Fix another batch of VLD/VST decoding crashes discovered by randomized testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138255 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 18:42:13 +00:00 |
|
Owen Anderson
|
f1c8e3e70e
|
Correct writeback handling of duplicating VLD instructions. Discovered by randomized testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138251 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 18:22:06 +00:00 |
|
Owen Anderson
|
88b7ccc7f0
|
Port another swathe of Thumb1 encoding tests over to decoding tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138250 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 18:05:49 +00:00 |
|
Owen Anderson
|
b113ec55e8
|
Fix an incorrect shift when decoding SP-relative stores in Thumb1-mode. Add more tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138246 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-22 17:56:58 +00:00 |
|
Owen Anderson
|
78affc9ea1
|
STC2L_POST and STC2L_POST should be handled the same as STCL_POST/LDC_POST for the purposes of decoding all operands except the predicate.
Found by randomized testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138003 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-18 22:47:44 +00:00 |
|
Owen Anderson
|
846dd95f87
|
Fix the decoding of RFE instruction. RFEs have the load bit set, while SRSs have it unset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138000 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-18 22:31:17 +00:00 |
|
Owen Anderson
|
14090bf263
|
Improve handling of failure and unpredictable cases for CPS, STR, and SMLA instructions.
Fixes a large class of disassembler crashes found by randomized testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137995 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-08-18 22:11:02 +00:00 |
|