aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86InstrInfo.td
Commit message (Collapse)AuthorAgeFilesLines
* Correct the name of stosd for the AT&T syntax:John Criswell2004-11-101-1/+1
| | | | | | | It's stosl (l for long == 32 bit). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17658 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove debugging code, fix encoding problem. This fixes the problemsChris Lattner2004-10-061-2/+2
| | | | | | | the JIT had last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16766 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some new instructions. Fix the asm string for sbb32rrChris Lattner2004-10-061-1/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16759 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert some missed patterns to support AT&T styleChris Lattner2004-10-041-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16645 91177308-0d34-0410-b5e6-96231b3b80d8
* Apparently the GNU assembler has a HUGE hack to be compatible with reallyChris Lattner2004-10-041-9/+12
| | | | | | | | | | old and broken AT&T syntax assemblers. The problem with this hack is that *SOME* forms of the fdiv and fsub instructions have the 'r' bit inverted. This was a real pain to figure out, but is trivially easy to support: thus we are now bug compatible with gas and gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16644 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix incorrect suffixChris Lattner2004-10-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16642 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some more missed suffixes and swapped operandsChris Lattner2004-10-041-34/+40
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16641 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing suffixes to FP instructions for AT&T modeChris Lattner2004-10-041-38/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16640 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to the instruction patterns for AT&T style output, which willChris Lattner2004-10-031-569/+963
| | | | | | | | | | hopefully lead to the death of the 'GasBugWorkaroundEmitter'. This also includes changes to wrap the whole file to 80 columns! Woot! :) Note that the AT&T style output has not been tested at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16638 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a shorter form to express implicit use/defs in FpGETRESULT andAlkis Evlogimenos2004-09-081-6/+4
| | | | | | | FpSETRESULT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16247 91177308-0d34-0410-b5e6-96231b3b80d8
* A call instruction should implicitely define ST0 since the returnAlkis Evlogimenos2004-09-081-3/+8
| | | | | | | | | value is returned in that register. The pseudo instructions FpGETRESULT and FpSETRESULT shold also have an implicity use and def of ST0 repsecitvely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16246 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a bunch of ad-hoc target-specific flags that were only used by theChris Lattner2004-08-111-31/+9
| | | | | | | old asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15660 91177308-0d34-0410-b5e6-96231b3b80d8
* Add asmprintergen support for the last X86 instruction that needs it: ↵Chris Lattner2004-08-111-1/+5
| | | | | | pcrelative calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15657 91177308-0d34-0410-b5e6-96231b3b80d8
* Scrunch memoperands, add a few more for floating point memopsChris Lattner2004-08-111-68/+61
| | | | | | | Eliminate the FPI*m classes, converting them to use FPI instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15655 91177308-0d34-0410-b5e6-96231b3b80d8
* Make FPI take asm string and operand listChris Lattner2004-08-111-39/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15653 91177308-0d34-0410-b5e6-96231b3b80d8
* Nuke the Im*i* patterns, by asmprintergenifying all users.Chris Lattner2004-08-111-70/+73
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15652 91177308-0d34-0410-b5e6-96231b3b80d8
* X86 instructions that read-modify-write memory are not LLVM two-address ↵Chris Lattner2004-08-111-78/+60
| | | | | | instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15651 91177308-0d34-0410-b5e6-96231b3b80d8
* Get rid of the Im8, Im16, Im32 classes, converting more instructions over toChris Lattner2004-08-111-224/+300
| | | | | | | asmprintergeneration git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15650 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert asmprinter to new style of instruction printerChris Lattner2004-08-111-8/+33
| | | | | | | Start asmprintergen'ifying machine instrs with memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15646 91177308-0d34-0410-b5e6-96231b3b80d8
* This is purely a formatting patch that gets us closer to the mecca of fittingChris Lattner2004-08-101-60/+103
| | | | | | | X86InstrInfo.td into 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15629 91177308-0d34-0410-b5e6-96231b3b80d8
* Drop the first argument of FPI, and asmprinterify fxchChris Lattner2004-08-101-28/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15628 91177308-0d34-0410-b5e6-96231b3b80d8
* This purely mechanical patch gives the "I" tblgen class operand list and asmChris Lattner2004-08-101-312/+239
| | | | | | | string operands, and adjusts all users to pass them in instead of using II. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15624 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert Ii32 instructions over to use the asmprinter generatorChris Lattner2004-08-101-16/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15621 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert the Ii16 instructions overChris Lattner2004-08-101-23/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15606 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert all Ii8 instructions over to the autogenerated asmprinter.Chris Lattner2004-08-101-36/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15605 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert all I<> instructions to asmformat.Chris Lattner2004-08-011-224/+302
| | | | | | | Delete the 'name' field of all instructions that have asmformats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15403 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate 3 of the X86 printImplicit* flags.Chris Lattner2004-08-011-8/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15398 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert more instructions over to the asmprinterChris Lattner2004-08-011-50/+66
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15396 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch more instructions over to using the asmprinter. Fix bugs in the emissionChris Lattner2004-08-011-36/+47
| | | | | | | of in/out instructions (missing %'s on registers). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15393 91177308-0d34-0410-b5e6-96231b3b80d8
* Specify an asm string and operands lists for a bunch of instructions.Chris Lattner2004-08-011-38/+75
| | | | | | | This only really covers no-operand instructions so far. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15387 91177308-0d34-0410-b5e6-96231b3b80d8
* Entirely eliminate all patterns and expanders from this file. We shall goChris Lattner2004-08-011-82/+45
| | | | | | | with an incremental approach rather than a revolutionary approach. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15379 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark barrier instructions. Execution does not fall through uncond branchesChris Lattner2004-07-311-2/+4
| | | | | | | or return intructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15356 91177308-0d34-0410-b5e6-96231b3b80d8
* No really, these are dead nowChris Lattner2004-06-111-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14145 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that compare instructions aren't lumped in with the other twoargfp ↵Chris Lattner2004-06-111-2/+2
| | | | | | | | | | instructions, we can get rid of the FpUCOM/FpUCOMi pseudo instructions, which makes stuff simpler and faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14144 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce a new FP instruction type to separate the compare cases from theChris Lattner2004-06-111-4/+5
| | | | | | | twoarg cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14143 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for the setp instructionsChris Lattner2004-06-111-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14140 91177308-0d34-0410-b5e6-96231b3b80d8
* Add immediate forms of in/out. Use let to shorten linesChris Lattner2004-04-131-7/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12895 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix issues that the local allocator has dealing with instructions that ↵Chris Lattner2004-04-121-3/+4
| | | | | | implicitly use ST(0) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12855 91177308-0d34-0410-b5e6-96231b3b80d8
* No really, fix printing for LLC. I gotta get a way for CVS to whine at me ifChris Lattner2004-04-121-1/+1
| | | | | | | I have unsaved emacs buffers, geeze... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12854 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct printing for LLC and the encoding for the JITChris Lattner2004-04-121-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12853 91177308-0d34-0410-b5e6-96231b3b80d8
* Add two new instructionsChris Lattner2004-04-121-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12850 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some new instructionsChris Lattner2004-04-111-1/+38
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12838 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes recommended by Chris:John Criswell2004-04-081-2/+2
| | | | | | | | | | | | | | | InstSelectSimple.cpp: Change the checks for proper I/O port address size into an exit() instead of an assertion. Assertions aren't used in Release builds, and handling this error should be graceful (not that this counts as graceful, but it's more graceful). Modified the generation of the IN/OUT instructions to have 0 arguments. X86InstrInfo.td: Added the OpSize attribute to the 16 bit IN and OUT instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12786 91177308-0d34-0410-b5e6-96231b3b80d8
* Added the llvm.readport and llvm.writeport intrinsics for x86. These doJohn Criswell2004-04-081-2/+25
| | | | | | | | | | | | | I/O port instructions on x86. The specific code sequence is tailored to the parameters and return value of the intrinsic call. Added the ability for implicit defintions to be printed in the Instruction Printer. Added the ability for RawFrm instruction to print implict uses and defintions with correct comma output. This required adjustment to some methods so that a leading comma would or would not be printed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12782 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix incorrect encoding of some ADC and SBB instuctionsChris Lattner2004-04-061-9/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12710 91177308-0d34-0410-b5e6-96231b3b80d8
* The sbb instructions really ARE sbb's, not adc'sChris Lattner2004-04-061-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12682 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix type in commentsAlkis Evlogimenos2004-04-021-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12611 91177308-0d34-0410-b5e6-96231b3b80d8
* Add more ADC and SBB variantsAlkis Evlogimenos2004-04-021-7/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12607 91177308-0d34-0410-b5e6-96231b3b80d8
* Add FP conditional move instructions, which annoyingly have special propertiesChris Lattner2004-03-311-4/+17
| | | | | | | | that require the asmwriter to be extended (printing implicit uses before the explicit operands) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12574 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some serious bugs in the cmov descriptions, which didn't cause a problem ↵Chris Lattner2004-03-301-60/+60
| | | | | | | | | | | because we never generated them Make indentation a bit more consistent git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12549 91177308-0d34-0410-b5e6-96231b3b80d8