- Oct 14, 2011
-
-
Craig Topper authored
Add X86 TZCNT instruction and patterns to select it. Also added core-avx2 processor which is gcc's name for Haswell. llvm-svn: 141939
-
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
-
Jakob Stoklund Olesen authored
TableGen will mark any pattern-less instruction as having unmodeled side effects. This is extra bad for V_SET0 which gets rematerialized a lot. This was part of the cause for PR11125, but the real bug was fixed in r141923. llvm-svn: 141924
-
Eli Friedman authored
llvm-svn: 141912
-
- Oct 13, 2011
-
-
Bill Wendling authored
release the stack segment and reset the stack pointer. Place the code in its own MBB to make the verifier happy. llvm-svn: 141859
-
Bill Wendling authored
http://lab.llvm.org:8011/builders/llvm-x86_64-linux/builds/101 --- Reverse-merging r141854 into '.': U test/MC/Disassembler/X86/x86-32.txt U test/MC/Disassembler/X86/simple-tests.txt D test/CodeGen/X86/bmi.ll U lib/Target/X86/X86InstrInfo.td U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86.td U lib/Target/X86/X86Subtarget.h llvm-svn: 141857
-
Bill Wendling authored
Should not add instructions to a BB after a return instruction. The machine instruction verifier doesn't like this, nor do I. llvm-svn: 141856
-
Craig Topper authored
Add X86 TZCNT instruction and patterns to select it. Also added core-avx2 processor which is gcc's name for Haswell. llvm-svn: 141854
-
Craig Topper authored
llvm-svn: 141853
-
- Oct 12, 2011
-
-
Nick Lewycky authored
llvm-svn: 141749
-
- Oct 11, 2011
-
-
Craig Topper authored
llvm-svn: 141656
-
Craig Topper authored
llvm-svn: 141654
-
Craig Topper authored
llvm-svn: 141651
-
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
-
Lang Hames authored
llvm-svn: 141616
-
Lang Hames authored
promoting allocas to preferred alignments that exceed the natural alignment. This avoids some potentially expensive dynamic stack realignments. The natural stack alignment is set in target data strings via the "S<size>" option. Size is in bits and must be a multiple of 8. The natural stack alignment defaults to "unspecified" (represented by a zero value), and the "unspecified" value does not prevent any alignment promotions. Target maintainers that care about avoiding promotions should explicitly add the "S<size>" option to their target data strings. llvm-svn: 141599
-
Eli Friedman authored
llvm-svn: 141585
-
- Oct 10, 2011
-
-
Benjamin Kramer authored
llvm-svn: 141571
-
Nadav Rotem authored
instruction set has no 64-bit SRA support. llvm-svn: 141570
-
Benjamin Kramer authored
llvm-svn: 141563
-
Craig Topper authored
llvm-svn: 141527
-
- Oct 09, 2011
-
-
Craig Topper authored
llvm-svn: 141505
-
- Oct 08, 2011
-
-
Jakob Stoklund Olesen authored
A GR8_NOREX virtual register is created when extrating a sub_8bit_hi sub-register: %vreg2<def> = COPY %vreg1:sub_8bit_hi; GR8_NOREX:%vreg2 %GR64_ABCD:%vreg1 TEST8ri_NOREX %vreg2, 1, %EFLAGS<imp-def>; GR8_NOREX:%vreg2 If such a live range is ever split, its register class must not be inflated to GR8. The sub-register copy can only target GR8_NOREX. I dont have a test case for this theoretical bug. llvm-svn: 141500
-
Jakob Stoklund Olesen authored
In 64-bit mode, sub_8bit_hi sub-registers can only be used by NOREX instructions. The COPY created from the EXTRACT_SUBREG DAG node cannot target all GR8 registers, only those in GR8_NOREX. TO enforce this, we ensure that all instructions using the EXTRACT_SUBREG are GR8_NOREX constrained. This fixes PR11088. llvm-svn: 141499
-
- Oct 07, 2011
-
-
Jakob Stoklund Olesen authored
This instruction is explicitly encoded without an REX prefix, so both operands but be *_NOREX. Also add an assertion to copyPhysReg() that fires when the MOV8rr_NOREX constraints are not satisfied. This fixes a miscompilation in 20040709-2 in the gcc test suite. llvm-svn: 141410
-
-
Craig Topper authored
llvm-svn: 141358
-
Craig Topper authored
llvm-svn: 141354
-
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
-
-
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
-
- Oct 05, 2011
-
-
Jakob Stoklund Olesen authored
There are fewer registers with sub_8bit sub-registers in 32-bit mode than in 64-bit mode. In 32-bit mode, sub_8bit behaves the same as sub_8bit_hi. llvm-svn: 141206
-
Craig Topper authored
llvm-svn: 141162
-
Owen Anderson authored
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
-
- Oct 04, 2011
-
-
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
-
- Oct 03, 2011
-
-
Craig Topper authored
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
-
Craig Topper authored
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
-
Craig Topper authored
llvm-svn: 140993
-
- Oct 02, 2011
-
-
Craig Topper authored
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
-
Craig Topper authored
Special case disassembler handling of REX.B prefix on NOP instruction to decode as XCHG R8D, EAX instead. Fixes PR10344. llvm-svn: 140971
-