Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Add support for X86 blsr, blsmsk, and blsi instructions. Required extra work ↵ | Craig Topper | 2011-10-15 | 1 | -0/+57 | |
| | | | | | | because these are the first VEX encoded instructions to use the reg field as an opcode extension. llvm-svn: 142082 | |||||
* | Finish supporting cpp #file/line comments in assembler for error messages. So | Kevin Enderby | 2011-10-12 | 1 | -0/+5 | |
| | | | | | | | | for cpp pre-processed assembly we give correct filename and line numbers when reporting errors in assembly files when using clang and -integrated-as on .s files. rdar://8998895 llvm-svn: 141814 | |||||
* | Revert part of r141274. Only need to change encoding for xchg %eax, %eax in ↵ | Craig Topper | 2011-10-07 | 2 | -4/+4 | |
| | | | | | | 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 | |||||
* | Fix assembling of xchg %eax, %eax to not use the NOP encoding of 0x90. This ↵ | Craig Topper | 2011-10-06 | 2 | -0/+37 | |
| | | | | | | 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 | |||||
* | The wrong relocation was being emitted for several SSSE3 instructions. | Bruno Cardoso Lopes | 2011-09-20 | 1 | -0/+6 | |
| | | | | | | | This fixes PR10963. Thanks to Benjamin for finding the wrong tablegen declaration. llvm-svn: 140184 | |||||
* | Fix PR10949. Fix the encoding of VMOVPQIto64rr. | Bruno Cardoso Lopes | 2011-09-19 | 1 | -0/+4 | |
| | | | | llvm-svn: 140098 | |||||
* | Re-write part of VEX encoding logic, to be more easy to read! Also fix | Bruno Cardoso Lopes | 2011-08-19 | 1 | -0/+4 | |
| | | | | | | a bug and add a testcase! llvm-svn: 138123 | |||||
* | Fix PR10677. Initial patch and idea by Peter Cooper but I've changed the | Bruno Cardoso Lopes | 2011-08-19 | 1 | -0/+16 | |
| | | | | | | implementation! llvm-svn: 138029 | |||||
* | Reorder declarations of vmovmskp* and also put the necessary AVX | Bruno Cardoso Lopes | 2011-08-15 | 1 | -0/+8 | |
| | | | | | | | predicate and TB encoding fields. This fix the encoding for the attached testcase. This fixes PR10625. llvm-svn: 137684 | |||||
* | Emit an error is asm parser parsed X86_64 only registers, e.g. %rax, %sil. | Evan Cheng | 2011-07-27 | 3 | -7/+14 | |
| | | | | | | | | | This can happen in cases where TableGen generated asm matcher cannot check whether a register operand is in the right register class. e.g. mem operands. rdar://8204588 llvm-svn: 136292 | |||||
* | Fix llvm-mc handing of x86 instructions that take 8-bit unsigned immediates. | Kevin Enderby | 2011-07-27 | 2 | -0/+39 | |
| | | | | | | | | | | | | 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 | |||||
* | Changed the X86 PUSH64i8 record to use the i64i8imm ParserMatchClass so that a | Kevin Enderby | 2011-07-06 | 1 | -0/+6 | |
| | | | | | | push with a small constant produces a 2-byte push. llvm-svn: 134501 | |||||
* | Add assembler/disassembler support for non-AVX pclmulqdq. While I'm here, ↵ | Eli Friedman | 2011-07-05 | 1 | -0/+16 | |
| | | | | | | use proper aliases for the pclmullqlqdq and friends. PR10269. llvm-svn: 134424 | |||||
* | Recognize the xstorerng alias for VIA PadLock's xstore instruction. | Joerg Sonnenberger | 2011-06-30 | 1 | -0/+4 | |
| | | | | llvm-svn: 134126 | |||||
* | Add support for movntil/movntiq mnemonics. Reported on llvmdev. | Eli Friedman | 2011-06-23 | 2 | -12/+24 | |
| | | | | llvm-svn: 133759 | |||||
* | Add support for assembling "movq" when it's correct to do so, while continuing | Nick Lewycky | 2011-06-21 | 1 | -0/+8 | |
| | | | | | | | to emit "movd" across the board to continue supporting a Darwin assembler bug. This is the reincarnation of r133452. llvm-svn: 133565 | |||||
* | Revert r133452: "Emit movq for 64-bit register to XMM register moves..." | Bob Wilson | 2011-06-21 | 2 | -11/+3 | |
| | | | | | | | This is breaking compiler-rt and llvm-gcc builds on MacOSX when not using the integrated assembler. llvm-svn: 133524 | |||||
* | Emit movq for 64-bit register to XMM register moves, but continue to accept | Nick Lewycky | 2011-06-20 | 2 | -3/+11 | |
| | | | | | | movd when assembling. llvm-svn: 133452 | |||||
* | Improve the heuristic to emit the alias if the number of hard-coded registers | Bill Wendling | 2011-06-15 | 1 | -15/+15 | |
| | | | | | | are also greater than the alias. llvm-svn: 133038 | |||||
* | Heuristic: If the number of operands in the alias are more than the number of | Bill Wendling | 2011-06-14 | 1 | -20/+20 | |
| | | | | | | operands in the aliasee, don't print the alias. llvm-svn: 132963 | |||||
* | add test from PR9164 | Chris Lattner | 2011-05-22 | 1 | -0/+6 | |
| | | | | llvm-svn: 131876 | |||||
* | testcase for PR9378 | Chris Lattner | 2011-05-22 | 1 | -0/+6 | |
| | | | | llvm-svn: 131875 | |||||
* | Remove some random comments that snuck in from somewhere. | Eric Christopher | 2011-05-04 | 1 | -4/+0 | |
| | | | | llvm-svn: 130812 | |||||
* | xmm0 is an implicit parameter in this and so shouldn't be in the | Eric Christopher | 2011-05-03 | 1 | -0/+9 | |
| | | | | | | | | string template. Fixes rdar://8493866 llvm-svn: 130747 | |||||
* | Add encoding tests for flds/filds | Joerg Sonnenberger | 2011-04-15 | 2 | -0/+24 | |
| | | | | llvm-svn: 129589 | |||||
* | As Dan pointed out, movzbl, movsbl, and friends are nicer than their alias | Bill Wendling | 2011-04-14 | 1 | -26/+26 | |
| | | | | | | (movzx/movsx) because they give more information. Revert that part of the patch. llvm-svn: 129498 | |||||
* | Have the X86 back-end emit the alias instead of what's being aliased. In most | Bill Wendling | 2011-04-14 | 2 | -70/+70 | |
| | | | | | | cases, it's much nicer and more informative reading the alias. llvm-svn: 129497 | |||||
* | fix rdar://8735979 - "int 3" doesn't match to "int3". Unfortunately, | Chris Lattner | 2011-04-09 | 1 | -0/+4 | |
| | | | | | | | InstAlias doesn't allow matching immediate operands, so we have to write C++ code to do this. llvm-svn: 129223 | |||||
* | Add support for the VIA PadLock instructions. | Joerg Sonnenberger | 2011-04-04 | 1 | -0/+53 | |
| | | | | llvm-svn: 128826 | |||||
* | Support explicit argument forms for the X86 string instructions. | Joerg Sonnenberger | 2011-03-18 | 2 | -0/+245 | |
| | | | | | | For now, only the default segments are supported. llvm-svn: 127875 | |||||
* | Followup to r126970: add 64-bit encoding tests for str with reg operand. | Eli Friedman | 2011-03-04 | 1 | -0/+16 | |
| | | | | llvm-svn: 126987 | |||||
* | PR9377: Handle x86 str with register operand in a way consistent with gas. | Eli Friedman | 2011-03-04 | 1 | -0/+8 | |
| | | | | llvm-svn: 126970 | |||||
* | Use the same (%dx) hack for in[bwl] as for out[bwl]. | Joerg Sonnenberger | 2011-02-22 | 1 | -3/+22 | |
| | | | | llvm-svn: 126244 | |||||
* | Recognize loopz and loopnz as aliases for loope and loopne. | Joerg Sonnenberger | 2011-02-22 | 2 | -0/+16 | |
| | | | | | | From Dimitry Andric. llvm-svn: 126168 | |||||
* | Implement xgetbv and xsetbv. | Rafael Espindola | 2011-02-22 | 1 | -0/+4 | |
| | | | | | | Patch by Jai Menon. llvm-svn: 126165 | |||||
* | implement PR9264: disambiguating 'bt mem, imm' as a btl. | Chris Lattner | 2011-02-19 | 1 | -0/+4 | |
| | | | | | | | This is reasonable to do since all bt-mem forms do the same thing. llvm-svn: 126047 | |||||
* | Recognize monitor/mwait with explicit register arguments | Joerg Sonnenberger | 2011-02-18 | 2 | -0/+18 | |
| | | | | llvm-svn: 125805 | |||||
* | Recognize leavel and leaveq aliases for leave. | Joerg Sonnenberger | 2011-02-17 | 2 | -0/+14 | |
| | | | | | | Validate encoding of leave in 64bit mode. llvm-svn: 125795 | |||||
* | Add encodings and mnemonics for FXSAVE64 and FXRSTOR64. | Reid Kleckner | 2011-02-12 | 1 | -0/+8 | |
| | | | | | | | | These are just FXSAVE and FXRSTOR with REX.W prefixes. These versions use 64-bit pointer values instead of 32-bit pointer values in the memory map they dump and restore. llvm-svn: 125446 | |||||
* | Fix PR8946, a missing reg/reg form of movdqu. | Chris Lattner | 2011-01-11 | 1 | -0/+2 | |
| | | | | llvm-svn: 123242 | |||||
* | Add another non-commutable instruction that gas accepts commuted forms for. | Nick Lewycky | 2010-12-30 | 1 | -0/+4 | |
| | | | | | | Fixes PR8861. llvm-svn: 122641 | |||||
* | Generalize a previous change, fixing PR8855 - an valid large immediate | Chris Lattner | 2010-12-25 | 1 | -0/+4 | |
| | | | | | | rejected by the mc assembler. llvm-svn: 122557 | |||||
* | Allow a slash, '/', as a prefix separator for X86. rdar://8741045 | Kevin Enderby | 2010-12-08 | 1 | -0/+5 | |
| | | | | llvm-svn: 121320 | |||||
* | fix PR8686, accepting a 'b' suffix at the end of all the setcc | Chris Lattner | 2010-11-28 | 1 | -1/+4 | |
| | | | | | | | | | | instructions. I choose to handle this with an asmparser hack, though it could be handled by changing all the instruction definitions to allow be "setneb" instead of "setne". The asm parser hack is better in this case, because we want the disassembler to produce setne, not setneb. llvm-svn: 120260 | |||||
* | Implement the data16 prefix. | Rafael Espindola | 2010-11-27 | 1 | -0/+1 | |
| | | | | llvm-svn: 120224 | |||||
* | Testcase for r120017. | Rafael Espindola | 2010-11-24 | 1 | -0/+1 | |
| | | | | llvm-svn: 120099 | |||||
* | implement PR8524, apparently mainline gas accepts movq as an alias for movd | Chris Lattner | 2010-11-21 | 1 | -0/+7 | |
| | | | | | | when transfering between i64 gprs and mmx regs. llvm-svn: 119931 | |||||
* | accept lret as an alias for lretl, fixing the reopened part of PR8592 | Chris Lattner | 2010-11-12 | 1 | -1/+2 | |
| | | | | llvm-svn: 118916 | |||||
* | implement PR8592: empirically "lretq" is a "lret" with a rex.w prefix. | Chris Lattner | 2010-11-12 | 1 | -0/+4 | |
| | | | | llvm-svn: 118903 | |||||
* | implement aliases for div/idiv that have an explicit A register operand, | Chris Lattner | 2010-11-06 | 1 | -0/+17 | |
| | | | | | | implementing rdar://8431864 llvm-svn: 118364 |