| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Fixed decode of existing 3dNow prefetchw instruction
Intel is scheduled to add a compatible prefetchw (same encoding) to future CPUs
llvm-svn: 174920
|
|
|
|
|
|
|
| |
I've tried to find main moudle headers where possible, but the TableGen
stuff may warrant someone else looking at it.
llvm-svn: 169251
|
|
|
|
|
|
|
|
| |
- Add RTM code generation support throught 3 X86 intrinsics:
xbegin()/xend() to start/end a transaction region, and xabort() to abort a
tranaction region
llvm-svn: 167573
|
|
|
|
|
|
| |
code emitters and the disassembler table builder. Fix a couple instructions that were still missing VEX_L.
llvm-svn: 164204
|
|
|
|
| |
llvm-svn: 162999
|
|
|
|
|
|
| |
isCodeGenOnly change allows special detection of _NOREX instructions to be removed from tablegen disassembler code.
llvm-svn: 160951
|
|
|
|
|
|
| |
IsCodeGenOnly
llvm-svn: 160950
|
|
|
|
|
|
| |
guaranteed it. Replace another sub class check with ShouldBeEmitted flag since it was factored in there already.
llvm-svn: 160949
|
|
|
|
|
|
| |
functional change.
llvm-svn: 160948
|
|
|
|
|
|
| |
and it isn't the only 256-bit memory type anyway.
llvm-svn: 160946
|
|
|
|
| |
llvm-svn: 160945
|
|
|
|
|
|
| |
with their non-AVX forms.
llvm-svn: 160775
|
|
|
|
|
|
|
| |
is one more that MRM_DF which is 55. Previously, it held value 45, the same
as MRM_D0.
llvm-svn: 160465
|
|
|
|
|
|
| |
instructions. Also fix Intel syntax for gather instructions to use 'DWORD PTR' or 'QWORD PTR' to match gas.
llvm-svn: 160420
|
|
|
|
|
|
| |
myself and Manman Ren.
llvm-svn: 160110
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support the following intrinsics:
llvm.x86.avx2.gather.d.pd, llvm.x86.avx2.gather.q.pd
llvm.x86.avx2.gather.d.pd.256, llvm.x86.avx2.gather.q.pd.256
llvm.x86.avx2.gather.d.ps, llvm.x86.avx2.gather.q.ps
llvm.x86.avx2.gather.d.ps.256, llvm.x86.avx2.gather.q.ps.256
Modified Disassembler to handle VSIB addressing mode.
llvm-svn: 159221
|
|
|
|
|
|
|
|
|
|
|
| |
extrq and insertq instructions.
This required light surgery on the assembler and disassembler
because the instructions use an uncommon encoding. They are
the only two instructions in x86 that use register operands
and two immediates.
llvm-svn: 157634
|
|
|
|
| |
llvm-svn: 153935
|
|
|
|
|
|
|
| |
prefix. Added a FIXME to remind us this still does not work when it is not the
first prefix.
llvm-svn: 152414
|
|
|
|
|
|
| |
Kay Tiong Khoo.
llvm-svn: 151510
|
|
|
|
| |
llvm-svn: 150899
|
|
|
|
|
|
| |
Original patch by Kay Tiong Khoo. Few tweaks by me for code density and to reduce replication.
llvm-svn: 150873
|
|
|
|
| |
llvm-svn: 147368
|
|
|
|
| |
llvm-svn: 147367
|
|
|
|
| |
llvm-svn: 144986
|
|
|
|
| |
llvm-svn: 143895
|
|
|
|
| |
llvm-svn: 142741
|
|
|
|
| |
llvm-svn: 142141
|
|
|
|
| |
llvm-svn: 142122
|
|
|
|
|
|
| |
VMREAD, and VMWRITE to remove hack from X86RecognizableInstr.
llvm-svn: 142117
|
|
|
|
|
|
| |
3 instead of Operand 2 so needs special casing in the disassembler and code emitter. Ultimately, should pass this information from tablegen
llvm-svn: 142105
|
|
|
|
|
|
| |
because these are the first VEX encoded instructions to use the reg field as an opcode extension.
llvm-svn: 142082
|
|
|
|
| |
llvm-svn: 141947
|
|
|
|
|
|
| |
for 64BIT_REXW_XD not existing, but it does exist.
llvm-svn: 141642
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
instructions. Mark instructions that have this behavior. Fixes PR10676.
llvm-svn: 141065
|
|
|
|
| |
llvm-svn: 140955
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Fixes part of PR10700.
llvm-svn: 140370
|
|
|
|
|
|
| |
from being recognized by disassembler.
llvm-svn: 139691
|
|
|
|
|
|
| |
being disassembled. Also added encodings for the other register/register form of these instructions. Fixes PR10848.
llvm-svn: 139588
|
|
|
|
|
|
| |
ADD/SUB/XOR/OR/AND/SBB/ADC/CMP/MOV.
llvm-svn: 139485
|
|
|
|
|
|
| |
disassembling to ignore OpSize and REX.W.
llvm-svn: 139484
|
|
|
|
| |
llvm-svn: 139014
|
|
|
|
|
|
| |
MRMDestReg form. Needed to support mem dest form of vmaskmovps/d. Fixes PR10807.
llvm-svn: 138795
|
|
|
|
| |
llvm-svn: 138771
|
|
|
|
|
|
| |
Remove const qualifiers from Init references, per Chris' request.
llvm-svn: 136531
|
|
|
|
|
|
|
| |
Make references to Inits const everywhere. This is the final step
before making them unique.
llvm-svn: 136485
|
|
|
|
|
|
|
|
|
|
|
|
| |
llvm-mc gives an "invalid operand" error for instructions that take an unsigned
immediate which have the high bit set such as:
pblendw $0xc5, %xmm2, %xmm1
llvm-mc treats all x86 immediates as signed values and range checks them.
A small number of x86 instructions use the imm8 field as a set of bits.
This change only changes those instructions and where the high bit is not
ignored. The others remain unchanged.
llvm-svn: 136287
|
|
|
|
|
|
| |
in the TableGen files containing "64" on x86-32. This includes a bunch of x87 instructions, like fld, and a bunch of SSSE3 instructions on MMX registers like pshufb. Part of PR8873.
llvm-svn: 135337
|