Craig Topper
2614f6f120
Fix assembling of xchg %eax, %eax to not use the NOP encoding of 0x90. This was done by creating a new register group that excludes AX registers. Fixes PR10345. Also added aliases for flipping the order of the operands of xchg <reg>, %eax.
...
llvm-svn: 141274
2011-10-06 06:44:41 +00:00
Owen Anderson
2d1e930b65
Support a valid, but not very useful, encoding of CPSIE where none of the AIF bits are set.
...
llvm-svn: 141190
2011-10-05 17:16:40 +00:00
Owen Anderson
e255773f3d
Teach the MC to output code/data region marker labels in MachO and ELF modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment.
...
llvm-svn: 141135
2011-10-04 23:26:17 +00:00
Jim Grosbach
386f7cb041
Tidy up formatting.
...
llvm-svn: 141123
2011-10-04 21:43:51 +00:00
Jim Grosbach
f3373734b4
Un-XFAIL file. Comment out individual failing instructions.
...
llvm-svn: 141117
2011-10-04 21:16:42 +00:00
Jim Grosbach
6f00406f92
Tidy up formatting.
...
llvm-svn: 141115
2011-10-04 20:52:57 +00:00
Jim Grosbach
0db58d15e6
Un-XFAIL file. Fix incorrect CHECK lines. General format cleanup.
...
llvm-svn: 141114
2011-10-04 20:50:05 +00:00
Jim Grosbach
3df5c47ec8
Un-XFAIL file. Fix incorrect CHECK line. General format cleanup.
...
llvm-svn: 141113
2011-10-04 20:46:49 +00:00
Jim Grosbach
4770714494
Tidy up formatting.
...
llvm-svn: 141111
2011-10-04 20:42:35 +00:00
Jim Grosbach
dee6bd4517
Un-XFAIL file. Fix incorrect CHECK line.
...
llvm-svn: 141110
2011-10-04 20:42:09 +00:00
Jim Grosbach
d7449dd23f
Un-XFAIL the file. Disable only the individual tests that aren't working yet.
...
llvm-svn: 141108
2011-10-04 20:34:11 +00:00
Jim Grosbach
58f067b61b
Un-XFAIL the file. Disable only the individual tests that aren't working yet.
...
llvm-svn: 141099
2011-10-04 18:43:15 +00:00
Jim Grosbach
93ad98accb
Tidy up. Formatting.
...
llvm-svn: 141096
2011-10-04 17:49:45 +00:00
Craig Topper
9d32602cfd
Add support in the disassembler for ignoring the L-bit on certain VEX instructions. Mark instructions that have this behavior. Fixes PR10676.
...
llvm-svn: 141065
2011-10-04 06:30:42 +00:00
Jim Grosbach
8170db143e
Tidy up. These tests are covered in the .s file tests now.
...
llvm-svn: 141047
2011-10-03 23:40:13 +00:00
Jim Grosbach
f38874e79e
ARM assembly parsing and encoding for VMOV immediate.
...
llvm-svn: 141046
2011-10-03 23:38:36 +00:00
Jim Grosbach
c69258c747
ARM parsing/encoding for VCMP/VCMPE.
...
llvm-svn: 141038
2011-10-03 22:30:24 +00:00
Jim Grosbach
21a9f8f50f
ARM assembly parsing and encoding for VMRS/FMSTAT.
...
llvm-svn: 141025
2011-10-03 21:12:43 +00:00
Jim Grosbach
0e385170ee
Update test for 141010.
...
llvm-svn: 141022
2011-10-03 20:58:08 +00:00
Jim Grosbach
1651804363
Tidy up a bit. Formatting.
...
llvm-svn: 141010
2011-10-03 17:59:31 +00:00
Craig Topper
df04bee9b2
Add support for MOVBE and RDRAND instructions for the assembler and disassembler. Includes feature flag checking, but no instrinsic support. Fixes PR10832, PR11026 and PR11027.
...
llvm-svn: 141007
2011-10-03 17:28:23 +00:00
Craig Topper
4456c94f70
Treat VEX.vvvv as a 3-bit field outside of 64-bit mode. Prevents access to registers xmm8-xmm15 outside 64-bit mode.
...
llvm-svn: 140997
2011-10-03 08:14:29 +00:00
Craig Topper
a3372bd949
Test updates that were supposed to go with r140993.
...
llvm-svn: 140994
2011-10-03 07:53:59 +00:00
Craig Topper
f776e3b410
Fix some Intel syntax disassembly issues with instructions that implicitly use AL/AX/EAX/RAX such as ADD/SUB/ADC/SUBB/XOR/OR/AND/CMP/MOV/TEST.
...
llvm-svn: 140974
2011-10-02 21:08:12 +00:00
Craig Topper
5c8feca34f
Special case disassembler handling of REX.B prefix on NOP instruction to decode as XCHG R8D, EAX instead. Fixes PR10344.
...
llvm-svn: 140971
2011-10-02 16:56:09 +00:00
Craig Topper
43fd621df8
Fix disassembling of INVEPT and INVVPID to take operands
...
llvm-svn: 140955
2011-10-01 21:20:14 +00:00
Craig Topper
99ad3cc23e
Fix disassembler handling of CRC32 which is an odd instruction that uses 0xf2 as an opcode extension and allows the opsize prefix. This necessitated adding IC_XD_OPSIZE and IC_64BIT_XD_OPSIZE contexts. Unfortunately, this increases the size of the disassembler tables. Fixes PR10702.
...
llvm-svn: 140954
2011-10-01 19:54:56 +00:00
James Molloy
c4fcff419c
Check in a patch that has already been code reviewed by Owen that I'd forgotten to commit.
...
Build on previous patches to successfully distinguish between an M-series and A/R-series MSR and MRS instruction. These take different mask names and have a *slightly* different opcode format.
Add decoder and disassembler tests.
Improvement on the previous patch - successfully distinguish between valid v6m and v7m masks (one is a subset of the other). The patch had to be edited slightly to apply to ToT.
llvm-svn: 140696
2011-09-28 14:21:38 +00:00
Jim Grosbach
b503a2183e
ARM Thumb2 asm parsing [SU]XT[BH] without rotate but with .w.
...
Add inst alias to handle these assembly forms. Add tests, too.
rdar://10178799
llvm-svn: 140647
2011-09-27 22:18:54 +00:00
Owen Anderson
bfb83aae27
Fix an incorrect decoder test.
...
llvm-svn: 140579
2011-09-26 23:08:34 +00:00
Owen Anderson
c811b1bed2
Remove incorrect testcases.
...
llvm-svn: 140572
2011-09-26 22:13:55 +00:00
Craig Topper
a08173e534
Fix VEX decoding in i386 mode. Fixes PR11008.
...
llvm-svn: 140515
2011-09-26 05:12:43 +00:00
Owen Anderson
fc9a0d104c
Teach the Thumb2 AsmParser to accept pre-indexed loads/stores with an offset of #-0.
...
llvm-svn: 140426
2011-09-23 22:25:02 +00:00
Owen Anderson
f9ff097fdd
Fix incorrect disassembly test.
...
llvm-svn: 140423
2011-09-23 22:05:54 +00:00
Owen Anderson
53c6b08ad8
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.
...
llvm-svn: 140420
2011-09-23 21:26:40 +00:00
Owen Anderson
071eb7580a
Reapply r140412 (Thumb2 reg-reg loads cannot target SP or PC), with invalid testcases updated.
...
llvm-svn: 140415
2011-09-23 21:07:25 +00:00
Craig Topper
655f8a01e6
Don't allow 32-bit only instructions to be disassembled in 64-bit mode. Fixes part of PR10700.
...
llvm-svn: 140370
2011-09-23 06:57:25 +00:00
Craig Topper
95f048d1ff
Fix register printing in disassembling of push/pop of segment registers and in/out in Intel syntax mode. Fixes PR10960
...
llvm-svn: 140299
2011-09-22 07:01:50 +00:00
Owen Anderson
22ab29756b
Turns out that Thumb2 ADR doesn't need special printing like LDR does. Fix other test failures I caused.
...
llvm-svn: 140284
2011-09-21 23:53:44 +00:00
Owen Anderson
7b134fe54c
Print out immediate offset versions of PC-relative load/store instructions as [pc, #123 ] rather than simply #123 .
...
llvm-svn: 140283
2011-09-21 23:44:46 +00:00
Bruno Cardoso Lopes
906f64c461
The wrong relocation was being emitted for several SSSE3 instructions.
...
This fixes PR10963. Thanks to Benjamin for finding the wrong tablegen
declaration.
llvm-svn: 140184
2011-09-20 21:39:21 +00:00
Owen Anderson
4177cfc809
Port over more Thumb2 encoding tests to decoding tests.
...
llvm-svn: 140152
2011-09-20 17:44:48 +00:00
Jim Grosbach
dd8f345dc3
Nuke obsolete test file.
...
llvm-svn: 140127
2011-09-20 01:03:51 +00:00
Jim Grosbach
169f556004
Thumb2 assembly parsing and encoding for WFE/WFI/YIELD.
...
llvm-svn: 140126
2011-09-20 00:48:56 +00:00
Jim Grosbach
e936bdc286
Thumb2 assembly parsing and encoding for UXTAB/UXTAB16/UXTH/UXTB/UXTB16/UXTH.
...
llvm-svn: 140125
2011-09-20 00:46:54 +00:00
Jim Grosbach
79dac4bf28
Thumb2 assembly parsing and encoding for USUB8/USUB16.
...
llvm-svn: 140120
2011-09-20 00:31:57 +00:00
Jim Grosbach
5ca3bddd26
Thumb2 assembly parsing and encoding for USAX.
...
llvm-svn: 140119
2011-09-20 00:30:45 +00:00
Jim Grosbach
f6d79c7c40
Thumb2 assembly parsing and encoding for USAT16.
...
llvm-svn: 140118
2011-09-20 00:28:25 +00:00
Jim Grosbach
4768b6b0d4
Thumb2 assembly parsing and encoding for USAT.
...
llvm-svn: 140117
2011-09-20 00:27:36 +00:00
Jim Grosbach
d9a8af05ea
Tidy up.
...
llvm-svn: 140114
2011-09-20 00:24:37 +00:00
Jim Grosbach
c67e9e9885
Thumb2 assembly parsing and encoding for UQSAD8/USADA8.
...
llvm-svn: 140113
2011-09-20 00:23:51 +00:00
Jim Grosbach
0b329532eb
Thumb2 assembly parsing and encoding for UQSUB16/UQSUB8.
...
llvm-svn: 140112
2011-09-20 00:20:44 +00:00
Jim Grosbach
18a65f1fe6
Thumb2 assembly parsing and encoding for UQASX/UQSAX.
...
llvm-svn: 140111
2011-09-20 00:18:52 +00:00
Jim Grosbach
f5f3242925
Thumb2 assembly parsing and encoding for UQADD16/UQADD8.
...
llvm-svn: 140110
2011-09-20 00:15:03 +00:00
Bruno Cardoso Lopes
de0dc10d6d
Fix PR10949. Fix the encoding of VMOVPQIto64rr.
...
llvm-svn: 140098
2011-09-19 23:36:59 +00:00
Jim Grosbach
d4a347b1e8
Tidy up a bit.
...
llvm-svn: 140096
2011-09-19 23:34:18 +00:00
Jim Grosbach
2341e082fc
Thumb2 assembly parsing and encoding for UMAAL/UMLAL/UMULL.
...
llvm-svn: 140095
2011-09-19 23:31:02 +00:00
Jim Grosbach
3a7a6c8acf
Thumb2 assembly parsing and encoding for UHSUB16/UHSUB8.
...
llvm-svn: 140089
2011-09-19 23:15:36 +00:00
Jim Grosbach
dd8d66f3aa
Thumb2 assembly parsing and encoding for UHASX/UHSAX.
...
llvm-svn: 140088
2011-09-19 23:13:25 +00:00
Jim Grosbach
0bec90ffe5
Thumb2 assembly parsing and encoding for UHADD16/UHADD8.
...
llvm-svn: 140087
2011-09-19 23:08:24 +00:00
Jim Grosbach
ec1bd1e213
Thumb2 assembly parsing and encoding for UBFX.
...
llvm-svn: 140086
2011-09-19 23:06:38 +00:00
Jim Grosbach
a5a28c45e5
Thumb2 assembly parsing and encoding for UASX.
...
llvm-svn: 140085
2011-09-19 23:05:22 +00:00
Jim Grosbach
4d8d362374
Fix copy/past-o. Gotta remember that 'modify' step...
...
llvm-svn: 140082
2011-09-19 22:53:00 +00:00
Jim Grosbach
2ef3c31987
Thumb2 assembly parsing and encoding for UADD16/UADD8.
...
llvm-svn: 140081
2011-09-19 22:52:27 +00:00
Jim Grosbach
7941ca00ab
Thumb2 assembly parsing and encoding for TST.
...
llvm-svn: 140080
2011-09-19 22:46:06 +00:00
Jim Grosbach
6da9e6b23d
Thumb2 assembly parsing and encoding for TBB/TBH.
...
llvm-svn: 140078
2011-09-19 22:21:13 +00:00
Jim Grosbach
2185babd50
Thumb2 assembly parsing and encoding for TEQ.
...
llvm-svn: 140070
2011-09-19 21:41:21 +00:00
Jim Grosbach
6e092f297b
Remove FIXME. TBB/TBH are Thumb mode only instructions.
...
llvm-svn: 140048
2011-09-19 20:30:29 +00:00
Jim Grosbach
c7fa5f0c00
Thumb2 assembly parsing and encoding for SXTB/SXTB16/SXTH.
...
llvm-svn: 140047
2011-09-19 20:29:33 +00:00
Owen Anderson
b843f3625d
Handle STRT (and friends) like LDRT (and friends) for decoding purposes. Port over additional encoding tests to decoding tests.
...
llvm-svn: 140032
2011-09-19 18:07:10 +00:00
Jim Grosbach
c677995374
Thumb2 assembly parsing and encoding for SXTAB/SXTAB16/SXTAH.
...
llvm-svn: 140029
2011-09-19 17:56:37 +00:00
Jim Grosbach
06677b6b4c
Thumb2 assembly parsing and encoding for SVC.
...
llvm-svn: 140025
2011-09-19 17:40:35 +00:00
Jim Grosbach
a5bdf3b221
Thumb2 assembly parsing and encoding for SUB(register).
...
llvm-svn: 140024
2011-09-19 17:37:48 +00:00
Stepan Dyatkovskiy
b769edad5b
Added regression test for bug #10869 .
...
llvm-svn: 140012
2011-09-19 07:48:08 +00:00
Owen Anderson
df512e9961
Add a testcase for another corner-case decoding.
...
llvm-svn: 139970
2011-09-16 23:15:29 +00:00
Jim Grosbach
95242bff08
Thumb2 assembly parsing and encoding for SUB(immediate).
...
llvm-svn: 139966
2011-09-16 22:58:42 +00:00
Owen Anderson
eae0eee720
Fix disassembly of Thumb2 BFI instructions with bit range of [0, 32).
...
llvm-svn: 139964
2011-09-16 22:29:48 +00:00
Jim Grosbach
3a58f722bf
Thumb2 assembly parsing and encoding for STRT.
...
llvm-svn: 139963
2011-09-16 22:27:12 +00:00
Jim Grosbach
41ece87fae
Thumb2 assembly parsing and encoding for LDRHT/STRHT.
...
llvm-svn: 139962
2011-09-16 22:26:01 +00:00
Jim Grosbach
e9f1da5dec
Thumb2 assembly parsing and encoding for STREX/STREXB/STREXH/STREXD.
...
llvm-svn: 139961
2011-09-16 22:22:07 +00:00
Jim Grosbach
f8313f60b3
Thumb2 assembly parsing and encoding for STRD.
...
llvm-svn: 139960
2011-09-16 22:19:38 +00:00
Jim Grosbach
d0ef17692a
Simplify comment. There's no Thumb LDRD(register) encoding. That's ARM only.
...
llvm-svn: 139959
2011-09-16 22:18:42 +00:00
Owen Anderson
3a487c8c9b
Add fixed bits to correctly distinguish Thumb2 SSAT/SSAT16's.
...
llvm-svn: 139958
2011-09-16 22:17:02 +00:00
Jim Grosbach
c3834c5da5
Thumb2 assembly parsing and encoding for STRBT.
...
llvm-svn: 139957
2011-09-16 22:15:51 +00:00
Jim Grosbach
3caa04dc32
Thumb2 assembly parsing and encoding for STRH.
...
llvm-svn: 139956
2011-09-16 22:12:19 +00:00
Jim Grosbach
771b6c5fe3
Remove test of undocumented format.
...
llvm-svn: 139955
2011-09-16 22:09:58 +00:00
Jim Grosbach
b181e68ab6
Thumb2 assembly parsing and encoding for STRB.
...
llvm-svn: 139954
2011-09-16 22:09:19 +00:00
Jim Grosbach
f75d317df4
Shuffle a few more thumb2 tests to match the comment headings.
...
llvm-svn: 139952
2011-09-16 22:01:18 +00:00
Jim Grosbach
bc84a55ed8
Thumb2 tests for STR(literal), STR(register) and STR pre/post indexed immediate.
...
llvm-svn: 139951
2011-09-16 21:59:13 +00:00
Jim Grosbach
c9eb37a7c9
Shuffle a few tests around.
...
llvm-svn: 139950
2011-09-16 21:57:10 +00:00
Owen Anderson
5804085f26
Fix disassembly of Thumb2 LDRSH with a #-0 offset.
...
llvm-svn: 139943
2011-09-16 21:08:33 +00:00
Jim Grosbach
916a6c71aa
Thumb2 assembly parsing and encoding for STR(immediate).
...
Add aliases for STRB/STRH while there. Tests forthcoming for those.
llvm-svn: 139942
2011-09-16 21:06:12 +00:00
Jim Grosbach
03c39637ee
Thumb2 assembly parsing and encoding for STMDB.
...
llvm-svn: 139940
2011-09-16 20:58:38 +00:00
Jim Grosbach
13af7198d5
Thumb2 assembly parsing and encoding for STMIA.
...
llvm-svn: 139938
2011-09-16 20:50:13 +00:00
Jim Grosbach
0c71c46758
Thumb2 assembly parsing and encoding for SSUB16/SSUB8.
...
llvm-svn: 139931
2011-09-16 18:52:36 +00:00
Jim Grosbach
47ff106753
Thumb2 assembly parsing and encoding for SSAX.
...
llvm-svn: 139929
2011-09-16 18:37:10 +00:00
Jim Grosbach
eb47e416c2
Thumb2 assembly parsing and encoding for SSAT16.
...
llvm-svn: 139927
2011-09-16 18:33:22 +00:00
Jim Grosbach
6f6453f64b
Thumb2 assembly parsing and encoding for SSAT.
...
llvm-svn: 139926
2011-09-16 18:32:30 +00:00
Jim Grosbach
5a8b63fe51
Thumb2 assembly parsing and encoding for SRS.
...
llvm-svn: 139925
2011-09-16 18:25:22 +00:00
Jim Grosbach
3cac04dd75
Thumb2 assembly parsing and encoding for SMMUSD/SMUSDX.
...
llvm-svn: 139923
2011-09-16 18:08:48 +00:00
Jim Grosbach
b8b9febaa7
Thumb2 assembly parsing and encoding for SMMULWB/SMULWT.
...
llvm-svn: 139922
2011-09-16 18:07:18 +00:00
Jim Grosbach
0f1615c381
Thumb2 assembly parsing and encoding for SMMULL.
...
llvm-svn: 139921
2011-09-16 18:05:48 +00:00
Jim Grosbach
4c944a22e2
Fix comment.
...
llvm-svn: 139919
2011-09-16 18:03:00 +00:00
Jim Grosbach
f39a3fcb4f
Thumb2 assembly parsing and encoding for SMULBB/SMULBT/SMULTB/SMULTT.
...
llvm-svn: 139918
2011-09-16 18:02:36 +00:00
Jim Grosbach
0066bd4289
Thumb2 assembly parsing and encoding for SMMUAD'dib.
...
llvm-svn: 139917
2011-09-16 17:58:21 +00:00
Jim Grosbach
89777cb2f9
Thumb2 assembly parsing and encoding for SMMUL/SMMULR.
...
llvm-svn: 139916
2011-09-16 17:56:06 +00:00
Owen Anderson
ceb2fb9548
Port over more Thumb2 assembly tests to disassembly tests.
...
llvm-svn: 139915
2011-09-16 17:56:04 +00:00
Owen Anderson
8bc7120609
Port over more Thumb2 assembly tests to disassembly tests.
...
llvm-svn: 139912
2011-09-16 17:22:48 +00:00
Jim Grosbach
fa3986ddbe
Thumb2 assembly parsing and encoding for SMMLS/SMMLSR.
...
llvm-svn: 139911
2011-09-16 17:16:55 +00:00
Jim Grosbach
25e57a3e7a
Thumb2 assembly parsing and encoding for SMMLA/SMMLAR.
...
llvm-svn: 139910
2011-09-16 17:15:18 +00:00
Jim Grosbach
3c3a9393ab
Thumb2 assembly parsing and encoding for SMLSLD/SMLSLDX.
...
llvm-svn: 139909
2011-09-16 17:10:44 +00:00
Jim Grosbach
5d7af41c05
Thumb2 assembly parsing and encoding for SMLSD/SMLSDX.
...
llvm-svn: 139908
2011-09-16 17:08:45 +00:00
Jim Grosbach
599dd49609
Thumb2 assembly parsing and encoding for SMLAWB/SMLAWT.
...
llvm-svn: 139907
2011-09-16 17:03:01 +00:00
Jim Grosbach
9e471afd9c
Thumb2 assembly parsing and encoding for SMLALD/SMLALDX.
...
llvm-svn: 139906
2011-09-16 16:58:03 +00:00
Jim Grosbach
77ece5c9a0
Thumb2 assembly parsing and encoding for SMLALBB/SMLALBT/SMLALTB/SMLALTT.
...
llvm-svn: 139905
2011-09-16 16:53:25 +00:00
Jim Grosbach
d382581509
Thumb2 assembly parsing and encoding for SMLAL.
...
llvm-svn: 139902
2011-09-16 16:38:00 +00:00
Jim Grosbach
5147a59e59
Thumb2 assembly parsing and encoding for SMLAD/SMLADX.
...
llvm-svn: 139884
2011-09-16 00:09:37 +00:00
Jim Grosbach
9fb6f7e9fc
Thumb2 assembly parsing and encoding for SMLABB/SMLABT/SMLATB/SMLATT.
...
llvm-svn: 139881
2011-09-16 00:00:23 +00:00
Jim Grosbach
85838cdb51
Thumb2 assembly parsing and encoding for SHSUB16/SHSUB8.
...
llvm-svn: 139880
2011-09-15 23:58:56 +00:00
Jim Grosbach
eee3717b95
Thumb2 assembly parsing and encoding for SHADD16/SHADD8.
...
llvm-svn: 139871
2011-09-15 22:36:10 +00:00
Jim Grosbach
423aae30b2
Thumb2 assembly parsing and encoding for SHASX/SHSAX.
...
llvm-svn: 139870
2011-09-15 22:34:29 +00:00
Jim Grosbach
68e3ea237e
Thumb2 assembly parsing and encoding for SEV.W.
...
llvm-svn: 139866
2011-09-15 22:24:20 +00:00
Jim Grosbach
29e503aec9
Thumb2 assembly parsing and encoding for SEL.
...
llvm-svn: 139861
2011-09-15 22:01:09 +00:00
Jim Grosbach
b9ba7e59b7
Thumb2 assembly parsing and encoding for SBFX.
...
llvm-svn: 139858
2011-09-15 21:58:42 +00:00
Jim Grosbach
aeb7320fa5
Add some missing 'CHECK' lines and tidy up others.
...
llvm-svn: 139849
2011-09-15 21:17:38 +00:00
Jim Grosbach
8ceb22b769
Thumb2 assembly parsing and encoding for SBC.
...
llvm-svn: 139844
2011-09-15 21:04:10 +00:00
Jim Grosbach
1ac9dd8a72
Thumb2 assembly parsing and encoding for SASX.
...
llvm-svn: 139843
2011-09-15 21:01:23 +00:00
Jim Grosbach
eaeb10930f
Thumb2 assembly parsing and encoding for SADD16/SADD8.
...
llvm-svn: 139841
2011-09-15 20:57:39 +00:00
Jim Grosbach
553692fcce
Thumb2 assembly parsing and encoding for RSB.
...
llvm-svn: 139839
2011-09-15 20:54:14 +00:00
Jim Grosbach
267610ed2a
Thumb2 assembly parsing and encoding for RRX.
...
llvm-svn: 139831
2011-09-15 19:52:43 +00:00
Jim Grosbach
ee202d43fe
Thumb2 assembly parsing and encoding for ROR.
...
llvm-svn: 139830
2011-09-15 19:50:04 +00:00
Jim Grosbach
50ee930e9a
Thumb2 assembly parsing and encoding for REV16/REVSH.
...
llvm-svn: 139828
2011-09-15 19:46:13 +00:00
Jim Grosbach
9d7aa9bcbc
Thumb2 assembly parsing and encoding for REV.
...
llvm-svn: 139813
2011-09-15 18:13:30 +00:00
Jim Grosbach
7c1422b068
Thumb2 assembly parsing and encoding for RBIT.
...
llvm-svn: 139811
2011-09-15 18:07:14 +00:00
Jim Grosbach
d6993cb54c
Thumb2 assembly parsing and encoding for signed saturating arithmetic insns.
...
llvm-svn: 139810
2011-09-15 18:06:15 +00:00
Jim Grosbach
5742cbd63f
Re-order test.
...
llvm-svn: 139795
2011-09-15 16:04:13 +00:00
Jim Grosbach
68de69f1c9
Thumb2 assembly parsing and encoding for PLI.
...
llvm-svn: 139757
2011-09-14 23:29:05 +00:00
Jim Grosbach
4d7b859fab
Thumb2 assembly parsing and encoding for PLD.
...
llvm-svn: 139756
2011-09-14 23:26:12 +00:00
Jim Grosbach
669e269758
Thumb2 assembly parsing and encoding for PKH.
...
llvm-svn: 139754
2011-09-14 23:16:41 +00:00
Owen Anderson
86f1fb2955
Fix a crasher in Thumb2 MOV-immediate encoding for certain inputs.
...
llvm-svn: 139747
2011-09-14 22:46:14 +00:00
Jim Grosbach
3908f7f2b7
Thumb2 assembly parsing and encoding for ORR.
...
llvm-svn: 139742
2011-09-14 21:43:57 +00:00
Jim Grosbach
4d891badcb
Thumb2 assembly parsing and encoding for ORN.
...
llvm-svn: 139741
2011-09-14 21:29:54 +00:00
Jim Grosbach
528142a13d
Thumb2 assembly parsing and encoding for NOP.W.
...
llvm-svn: 139740
2011-09-14 21:26:25 +00:00
Jim Grosbach
e841adae12
Thumb2 assembly parsing and encoding for MVN.
...
llvm-svn: 139739
2011-09-14 21:24:41 +00:00
Jim Grosbach
585e3c779f
Thumb2 assembly parsing and encoding for MUL.
...
llvm-svn: 139735
2011-09-14 21:00:40 +00:00
Jim Grosbach
b1c70aab3e
Thumb2 assembly parsing and encoding for MSR/MRS.
...
Fix a bug in handling default flags for both ARM and Thumb encodings.
llvm-svn: 139721
2011-09-14 20:03:46 +00:00
Jim Grosbach
e260140b99
Thumb2 assembly parsing and encoding for MRC/MRC2/MRRC/MRRC2.
...
llvm-svn: 139717
2011-09-14 19:28:49 +00:00
Jim Grosbach
807e68b8db
Thumb2 assembly parsing and encoding for MOVT.
...
llvm-svn: 139715
2011-09-14 19:15:15 +00:00
Jim Grosbach
932d409524
Thumb2 assembly parsing for MOV in IT block.
...
Select the right 16 vs. 32 bit encoding in an IT block.
llvm-svn: 139714
2011-09-14 19:12:11 +00:00
Jim Grosbach
41c8bdfdd9
ARM fix assembly parser handling of ranges in register lists.
...
Clean up register list handling in general a bit to explicitly check things
like all the registers being from the same register class.
rdar://8883573
llvm-svn: 139707
2011-09-14 18:08:35 +00:00
Craig Topper
60719c7bfb
Fix mem type for VEX.128 form of VROUNDP*. Remove filter preventing VROUND from being recognized by disassembler.
...
llvm-svn: 139691
2011-09-14 06:41:26 +00:00
Craig Topper
25e81ae604
Make disassembling of VBLEND* print immediate as a XMM/YMM register name. Fixes PR10917.
...
llvm-svn: 139690
2011-09-14 05:55:28 +00:00
Craig Topper
d707457c41
Add test case for PR10851.
...
llvm-svn: 139689
2011-09-14 04:36:54 +00:00
Owen Anderson
1037a3e60b
Make use of Eli's FileCheck sorcery to improve this test.
...
llvm-svn: 139645
2011-09-13 21:37:50 +00:00
Owen Anderson
d0121fe635
Correct disassembly printing of Thumb2 post-incremented LDRD and STRD.
...
llvm-svn: 139639
2011-09-13 20:46:26 +00:00
Owen Anderson
b4ed08c465
Teach the Thumb ASM parser that BKPT is allowed in IT blocks, even though it is always executed unconditionally.
...
llvm-svn: 139610
2011-09-13 17:59:19 +00:00
Owen Anderson
5982d4d51b
Fix encoding of Thumb2 shifted register operands with RRX shifts.
...
llvm-svn: 139606
2011-09-13 17:34:32 +00:00
Craig Topper
03c833ff84
Remove filter that was preventing MOVDQU/MOVDQA and their VEX forms from being disassembled. Also added encodings for the other register/register form of these instructions. Fixes PR10848.
...
llvm-svn: 139588
2011-09-13 06:54:58 +00:00
Owen Anderson
ebcf543265
Fix a failing ELF Thumb test. I _think_ this is right, but it's not totally clear to me what this test is doing. Could someone on an ELF platform check?
...
llvm-svn: 139549
2011-09-12 22:40:31 +00:00
Owen Anderson
a1a10ed5c6
Thumb2 POP's don't allow the PC as an operand, and PUSH's don't allow the SP either.
...
llvm-svn: 139542
2011-09-12 21:28:46 +00:00
Owen Anderson
0081444d87
Fix encoding of PC-relative LDRSHW with an immediate offset.
...
llvm-svn: 139537
2011-09-12 20:36:51 +00:00
Owen Anderson
05ef2c122d
Port more encoding tests to decoding tests, and correct an improper Thumb2 pre-indexed load decoding this uncovered.
...
llvm-svn: 139522
2011-09-12 18:56:30 +00:00
Craig Topper
5ffd0cb080
Fix disassembling of one of the register/register forms of MOVUPS/MOVUPD/MOVAPS/MOVAPD/MOVSS/MOVSD and their VEX equivalents. Fixes PR10877.
...
llvm-svn: 139486
2011-09-11 23:19:54 +00:00
Craig Topper
a9b27eecc9
Fix disassembling of reverse register/register forms of ADD/SUB/XOR/OR/AND/SBB/ADC/CMP/MOV.
...
llvm-svn: 139485
2011-09-11 21:41:45 +00:00
Craig Topper
8361de67b5
Fix disassembling of PAUSE instruction. Fixes PR10900. Also fixed NOP disassembling to ignore OpSize and REX.W.
...
llvm-svn: 139484
2011-09-11 20:23:20 +00:00
Jim Grosbach
52492b1cf3
Thumb2 parsing and encoding for MOV(immediate).
...
Some aliases for MOV(register) also to keep existing T1 tests happy when
run in thumbv7 mode.
llvm-svn: 139440
2011-09-10 00:15:36 +00:00
Owen Anderson
9cd21ce8c9
LDM writeback is not allowed if Rn is in the target register list.
...
llvm-svn: 139432
2011-09-09 23:13:33 +00:00
Owen Anderson
dbe77fc5a1
Fix assembly/disassembly of Thumb2 ADR instructions with immediate operands.
...
llvm-svn: 139422
2011-09-09 22:24:36 +00:00
Owen Anderson
a7838cb723
Thumb unconditional branches are allowed in IT blocks, and therefore should have a predicate operand, unlike conditional branches.
...
llvm-svn: 139415
2011-09-09 21:48:23 +00:00
Jim Grosbach
6225a96bf5
Thumb2 assembly parsing and encoding for MLA and MLS.
...
llvm-svn: 139399
2011-09-09 20:24:45 +00:00
Jim Grosbach
5f87c06a64
Thumb2 assembly parsing and encoding for MCR, MCR2, MCRR, MCRR2.
...
llvm-svn: 139397
2011-09-09 20:19:28 +00:00
Jim Grosbach
f310295150
Tidy up formatting a bit.
...
llvm-svn: 139396
2011-09-09 20:17:49 +00:00
Jim Grosbach
f7d8e569b3
Thumb2 assembly parsing and encoding for LSL.
...
llvm-svn: 139395
2011-09-09 20:05:38 +00:00
Jim Grosbach
69e67f206d
Thumb2 assembly parsing and encoding for LDRT.
...
llvm-svn: 139393
2011-09-09 20:02:15 +00:00
Jim Grosbach
abd54fb32c
Thumb2 assembly parsing and encoding for LDRSHT.
...
llvm-svn: 139392
2011-09-09 20:01:18 +00:00
Jim Grosbach
c6aa5be010
Thumb2 assembly parsing and encoding for LDRSH.
...
llvm-svn: 139391
2011-09-09 19:54:30 +00:00
Jim Grosbach
022da868a5
Thumb2 assembly parsing and encoding for LDRSBT.
...
llvm-svn: 139390
2011-09-09 19:49:06 +00:00
Jim Grosbach
915ba5189e
Thumb2 assembly parsing and encoding for LDRSB.
...
llvm-svn: 139389
2011-09-09 19:42:40 +00:00
Jim Grosbach
6faf547463
Thumb2 assembly parsing and encoding for LDRH.
...
llvm-svn: 139386
2011-09-09 19:13:53 +00:00
Jim Grosbach
26f684d4ff
Shuffle a bit.
...
llvm-svn: 139385
2011-09-09 19:09:54 +00:00
Jim Grosbach
eb2d668899
Thumb2 assembly parsing and encoding for LDREX/LDREXB/LDREXD/LDREXH.
...
llvm-svn: 139381
2011-09-09 18:37:27 +00:00
Jim Grosbach
1091b2913d
Add FIXME.
...
llvm-svn: 139371
2011-09-09 16:45:31 +00:00
Craig Topper
23adfa4738
Add disassembler test for Intel syntax. Tests r139353.
...
llvm-svn: 139356
2011-09-09 06:35:44 +00:00
Owen Anderson
d7127e0c27
Soft fail CBZ/CBNZ in the disassembler if they appear inside an IT block.
...
llvm-svn: 139328
2011-09-08 22:42:49 +00:00
Jim Grosbach
9f150bfedf
Thumb2 assembly parsing and encoding for LDRD(immediate).
...
Refactor operand handling for STRD as well. Tests for that forthcoming.
llvm-svn: 139322
2011-09-08 22:07:06 +00:00
Kevin Enderby
16f9df1f05
Fix a Darwin x86_64 special case of a jmp to a temporary symbol from an atom
...
without a base symbol that must not have a relocation entry.
llvm-svn: 139316
2011-09-08 20:53:44 +00:00
Jim Grosbach
222a102bd1
Add tests for Thumb2 LDRB indexed addressing w/ writeback.
...
llvm-svn: 139292
2011-09-08 16:49:36 +00:00
Jim Grosbach
5ac3aa158b
Thumb2 assembly parsing and encoding for LDR post-indexed.
...
More cleanup of the general indexed addressing T2 instructions. Still more to
do, especially for stores.
llvm-svn: 139272
2011-09-08 01:01:32 +00:00
Jim Grosbach
1aa191032a
Thumb2 assembly parsing and encoding for LDR pre-indexed w/ writeback.
...
Adjust encoding of writeback load/store instructions to better reflect the
way the operand types are represented.
llvm-svn: 139270
2011-09-08 00:39:19 +00:00
Jim Grosbach
8b54d19514
Thumb2 assembly parsing and encoding for LDRBT.
...
llvm-svn: 139267
2011-09-07 23:39:14 +00:00
Jim Grosbach
7482c11b79
Thumb2 assembly parsing and encoding for LDRB(register).
...
llvm-svn: 139266
2011-09-07 23:17:00 +00:00
Jim Grosbach
a3ff9eeb85
Thumb2 assembly parsing and encoding for LDR(register).
...
llvm-svn: 139264
2011-09-07 23:10:15 +00:00
Jim Grosbach
d640c62856
Thumb2 assembly parsing and encoding for LDRB(immediate).
...
llvm-svn: 139258
2011-09-07 21:41:25 +00:00
Jim Grosbach
deb3c78242
Thumb2 assembly parsing and encoding for LDR(literal).
...
Need branch relocation support to distinguish this encoding from the
16-bit Thumb1 encoding w/o the explicit .w suffix. That comes later, though.
llvm-svn: 139257
2011-09-07 21:33:16 +00:00
Owen Anderson
26467730c1
Create Thumb2 versions of STC/LDC, and reenable the relevant tests.
...
llvm-svn: 139256
2011-09-07 21:10:42 +00:00
Jim Grosbach
53b836a088
Add tests for Thumb2 LDR(immediate) from r139254.
...
llvm-svn: 139255
2011-09-07 21:06:46 +00:00
Jim Grosbach
054b346e46
Thumb2 parsing and encoding for LDMDB.
...
llvm-svn: 139251
2011-09-07 19:57:53 +00:00
James Molloy
ac057f13a5
Second of a three-patch series aiming to fix MSR/MRS on Cortex-M. This adds predicate checking to the Disassembler.
...
llvm-svn: 139250
2011-09-07 19:42:28 +00:00
Jim Grosbach
f5f321c4ce
Update test for 139243
...
llvm-svn: 139244
2011-09-07 18:40:06 +00:00
Jim Grosbach
20689d28e7
Thumb2 parsing and encoding for LDMIA.
...
Choose 32-bit vs. 16-bit encoding when there's no .w suffix in post-processing
as match classes are insufficient to handle the context-sensitiveness of
the writeback operand's legality for the 16-bit encodings.
llvm-svn: 139242
2011-09-07 18:05:34 +00:00