- Oct 17, 2011
-
-
Bill Wendling authored
llvm-svn: 142173
-
Bill Wendling authored
This removes support for building llvm-gcc. It will eventually add support for building other projects. llvm-svn: 142165
-
- Oct 16, 2011
-
-
Bill Wendling authored
llvm-svn: 142155
-
Craig Topper authored
llvm-svn: 142141
-
Craig Topper authored
llvm-svn: 142122
-
Craig Topper authored
Add X86 INVPCID instruction. Add 32/64-bit predicates to INVEPT, INVVPID, VMREAD, and VMWRITE to remove hack from X86RecognizableInstr. llvm-svn: 142117
-
Chris Lattner authored
string, pass it around as an enum. llvm-svn: 142107
-
Chris Lattner authored
the X86 asmparser to produce ranges in the one case that was annoying me, for example: test.s:10:15: error: invalid operand for instruction movl 0(%rax), 0(%edx) ^~~~~~~ It should be straight-forward to enhance filecheck, tblgen, and/or the .ll parser to use ranges where appropriate if someone is interested. llvm-svn: 142106
-
Craig Topper authored
Add X86 BEXTR instruction. This instruction uses VEX.vvvv to encode Operand 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
-
Bill Wendling authored
llvm-svn: 142098
-
Bill Wendling authored
llvm-svn: 142097
-
- Oct 15, 2011
-
-
Craig Topper authored
Add support for X86 blsr, blsmsk, and blsi instructions. Required extra work because these are the first VEX encoded instructions to use the reg field as an opcode extension. llvm-svn: 142082
-
- Oct 14, 2011
-
-
David Greene authored
Pass the correct jobs and threads information to the builder. We were underutilizing the number of jobs and threads specified by the user. llvm-svn: 141977
-
David Greene authored
Bit just a bit more verbose about what's going on. Print options to make to aid debugging. llvm-svn: 141976
-
David Greene authored
Add a --no-install option to skip installing components. This speeds up the develop/test cycle. llvm-svn: 141975
-
David Greene authored
And a --no-gcc option to skip dragonegg and gcc builds. This greatly speeds up the develop/test cycle. llvm-svn: 141974
-
Craig Topper authored
llvm-svn: 141947
-
Jakob Stoklund Olesen authored
TableGen infers unmodeled side effects on instructions without a pattern. Fix some instruction definitions where that was overlooked. Also raise an error if a rematerializable instruction has unmodeled side effects. That doen't make any sense. llvm-svn: 141929
-
- Oct 12, 2011
-
-
Jim Grosbach authored
llvm-svn: 141786
-
- Oct 11, 2011
-
-
Eli Friedman authored
llvm-svn: 141699
-
Craig Topper authored
Fix disassembling of popcntw. Also remove some code that says it accounts for 64BIT_REXW_XD not existing, but it does exist. llvm-svn: 141642
-
- Oct 10, 2011
-
-
Jakob Stoklund Olesen authored
This should unbreak the picky buildbots. llvm-svn: 141575
-
Jakob Stoklund Olesen authored
The table is indexed by opcode, so simply removing pseudo-instructions creates a wrong mapping from opcode to table entry. Add a test case for xorps which has a very high opcode that exposes this problem. llvm-svn: 141562
-
- Oct 08, 2011
-
-
Jim Grosbach authored
llvm-svn: 141446
-
- Oct 07, 2011
-
-
David Greene authored
Multidefs are a bit unwieldy and incomplete. Remove them in favor of another mechanism, probably for loops. Revert "Make Test More Thorough" Revert "Fix a typo." Revert "Vim Support for Multidefs" Revert "Emacs Support for Multidefs" Revert "Document Multidefs" Revert "Add a Multidef Test" Revert "Update Test for Multidefs" Revert "Process Multidefs" Revert "Parser Multidef Support" Revert "Lexer Support for Multidefs" Revert "Add Multidef Data Structures" llvm-svn: 141378
-
Craig Topper authored
Revert part of r141274. Only need to change encoding for xchg %eax, %eax in 64-bit mode. This is because in 64-bit mode xchg %eax, %eax implies zeroing the upper 32-bits of RAX which makes it not a NOP. In 32-bit mode using NOP encoding is fine. llvm-svn: 141353
-
- Oct 06, 2011
-
-
Peter Collingbourne authored
llvm-svn: 141293
-
Craig Topper authored
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
-
Peter Collingbourne authored
llvm-svn: 141266
-
Jakob Stoklund Olesen authored
This restores my karma after I added TRI::getSubClassWithSubReg(). Register constraints are applied 'backwards'. Starting from the register class required by an instruction operand, the correct question is: 'How can I constrain the super-register register class so all its sub-registers satisfy the instruction constraint?' The getMatchingSuperRegClass() hook answers that. We never need to go 'forwards': Starting from a super-register register class, what register class are the sub-registers in? The getSubRegisterRegClass() hook did that. llvm-svn: 141258
-
David Greene authored
Add vim highlighting support for multidefs. llvm-svn: 141238
-
David Greene authored
Add Emacs font-lock keyword support for multidefs. llvm-svn: 141237
-
- Oct 05, 2011
-
-
Jakob Stoklund Olesen authored
This function is used to constrain a register class to a sub-class that supports the given sub-register index. For example, getSubClassWithSubReg(GR32, sub_8bit) -> GR32_ABCD. The function will be used to compute register classes when emitting INSERT_SUBREG and EXTRACT_SUBREG nodes and for register class inflation of sub-register operations. The version provided by TableGen is usually adequate, but targets can override. llvm-svn: 141142
-
- Oct 04, 2011
-
-
Jakob Stoklund Olesen authored
This should unbreak the Windows build. llvm-svn: 141105
-
Jakob Stoklund Olesen authored
The set of register classes should be closed under sub-register operations and intersections. That will allow the register allocator to model combinations of constraints accurately. This patch implements the easiest form of register class inference: For every register class, and for every sub-register SubIdx, the subset of registers in RC that have a SubIdx sub-register should also be a register class. This does create some new register classes for the targets in the tree: ARM gets a new QQQQPR_with_ssub_0. This class was omitted from the .td file on purpose because it only has two registers. InstrEmitter and RegisterCoalescer have safeguards against selecting too small register classes, so it is harmless. PowerPC gets a G8RC_with_sub_32 class because LR is not a sub_32 sub-register of LR8. I think that might be an omission? X86 puts RIP in the GR64 class, and since that register doesn't have 8-bit sub-registers, we get: GR64_with_sub_8bit GR64_TC_with_sub_8bit GR64_NOREX_with_sub_8bit GR64_TC_with_sub_8bit_hi The various CodeGen classes have already been fixed so adding new register classes should not affect compile time. llvm-svn: 141084
-
Jakob Stoklund Olesen authored
There is no need to keep the primary order separate. llvm-svn: 141082
-
Jakob Stoklund Olesen authored
When TableGen starts creating its own register classes, the synthesized classes won't have a Record reference. All register classes must have a name, though. llvm-svn: 141081
-
Jakob Stoklund Olesen authored
The RecordKeeper could be shared by multiple target instances, causing duplicate record errors. llvm-svn: 141080
-
Craig Topper authored
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
-
Rafael Espindola authored
llvm-svn: 141057
-