summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86RegisterInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Teach reginfo how to deal with ADJSTACKPTRri, allowing us to generate:Chris Lattner2005-05-151-0/+3
| | | | | | | | | | | | add %ESP, 20 jmp %EDX # TAIL CALL instead of: add %ESP, -8 add %ESP, 28 jmp %EDX # TAIL CALL llvm-svn: 22047
* When emitting the function epilog, check to see if there already a stackChris Lattner2005-05-141-8/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | adjustment. If so, we merge the adjustment into the existing one. This allows us to generate: caller2: sub %ESP, 12 mov DWORD PTR [%ESP], 0 mov %EAX, 1234567890 mov %EDX, 0 call func2 add %ESP, 8 ret 4 intead of: caller2: sub %ESP, 12 mov DWORD PTR [%ESP], 0 mov %EAX, 1234567890 mov %EDX, 0 call func2 sub %ESP, 4 add %ESP, 12 ret 4 for X86/fast-cc-merge-stack-adj.ll llvm-svn: 22038
* Add some new instructionsChris Lattner2005-05-141-2/+10
| | | | llvm-svn: 22036
* switch to having the callee pop stack operands for fastcc. This is ↵Chris Lattner2005-05-131-5/+19
| | | | | | | | currently buggy do not use llvm-svn: 21984
* allow RETIChris Lattner2005-05-131-1/+1
| | | | llvm-svn: 21980
* add signed versions of the extra precision multipliesChris Lattner2005-04-061-0/+3
| | | | llvm-svn: 21106
* Add rotate instructions.Chris Lattner2005-01-191-0/+12
| | | | llvm-svn: 19690
* Improve coverage of the X86 instruction set by adding 16-bit shift doubles.Chris Lattner2005-01-191-0/+4
| | | | llvm-svn: 19687
* Add conditional moves for the parity flag.Chris Lattner2005-01-101-0/+4
| | | | llvm-svn: 19437
* Add support for SETNPr to lower to memory form.Chris Lattner2005-01-021-0/+1
| | | | llvm-svn: 19248
* Spill/restore X86 floating point stack registers with 64-bits of precisionChris Lattner2004-12-021-4/+5
| | | | | | | | instead of 80-bits of precision. This fixes PR467. This change speeds up fldry on X86 with LLC from 7.32s on apoc to 4.68s. llvm-svn: 18433
* Add some new instructions. Fix the asm string for sbb32rrChris Lattner2004-10-061-0/+2
| | | | llvm-svn: 16759
* Changes For Bug 352Reid Spencer2004-09-011-2/+2
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Reduce uses of getRegClassChris Lattner2004-08-211-14/+11
| | | | llvm-svn: 15973
* Code insertion methods now return void instead of an int.Chris Lattner2004-08-151-13/+10
| | | | llvm-svn: 15780
* These methods no longer take a TargetRegisterClass* operand.Chris Lattner2004-08-151-4/+4
| | | | llvm-svn: 15774
* Eliminate MachineFunction& argument from eliminateFrameIndex in x86 Target. ↵Nate Begeman2004-08-141-2/+2
| | | | | | Get MachineFunction from MachineInstruction's parent's parent llvm-svn: 15739
* Reserve the correct amt of space.Chris Lattner2004-07-171-2/+2
| | | | llvm-svn: 14913
* Delete the allocate*TargetMachine function, which is now dead .Chris Lattner2004-07-111-1/+1
| | | | | | The shared command line options are now in a header that makes sense. llvm-svn: 14756
* Add #include <iostream> since Value.h does not #include it any more.Reid Spencer2004-07-041-0/+2
| | | | llvm-svn: 14622
* Spell out `NoFramePointerElim' for readability.Misha Brukman2004-06-211-1/+1
| | | | llvm-svn: 14299
* Use the common `NoFPElim' setting instead of our own.Misha Brukman2004-06-211-4/+2
| | | | llvm-svn: 14298
* Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()Chris Lattner2004-06-171-1/+1
| | | | llvm-svn: 14201
* Add support for the setp instructionsChris Lattner2004-06-111-0/+1
| | | | llvm-svn: 14140
* Convert to the new TargetMachine interface.Chris Lattner2004-06-021-2/+2
| | | | llvm-svn: 13952
* Add more ADC and SBB variantsAlkis Evlogimenos2004-04-021-0/+2
| | | | llvm-svn: 12607
* Implement spill code folding for all of the conditional move instructionsChris Lattner2004-03-301-0/+21
| | | | llvm-svn: 12554
* Another API change to MRegisterInfo::foldMemoryOperand. Instead of aAlkis Evlogimenos2004-03-141-4/+3
| | | | | | MachineBasicBlock::iterator take a MachineInstr*. llvm-svn: 12392
* Change MRegisterInfo::foldMemoryOperand to return the foldedAlkis Evlogimenos2004-03-141-169/+163
| | | | | | instruction to make the API more flexible. llvm-svn: 12386
* Add memory operand version of conditional move.Alkis Evlogimenos2004-03-071-0/+3
| | | | llvm-svn: 12190
* A big X86 instruction rename. The instructions are renamed to makeAlkis Evlogimenos2004-02-291-148/+148
| | | | | | | | | | | | | | | | their names more decriptive. A name consists of the base name, a default operand size followed by a character per operand with an optional special size. For example: ADD8rr -> add, 8-bit register, 8-bit register IMUL16rmi -> imul, 16-bit register, 16-bit memory, 16-bit immediate IMUL16rmi8 -> imul, 16-bit register, 16-bit memory, 8-bit immediate MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory llvm-svn: 11995
* SHLD and SHRD take 32-bit operands but an 8-bit immediate. Rename themAlkis Evlogimenos2004-02-281-2/+2
| | | | | | to denote this fact. llvm-svn: 11972
* Floating point loads/stores act on memory operands. Rename them toAlkis Evlogimenos2004-02-281-2/+2
| | | | | | denote this fact. llvm-svn: 11971
* Uncomment instructions that take both an immediate and a memoryAlkis Evlogimenos2004-02-281-11/+11
| | | | | | operand but their sizes differ. llvm-svn: 11969
* Do not generate instructions with mismatched memory/immediate sizedAlkis Evlogimenos2004-02-281-11/+11
| | | | | | operands. The X86 backend doesn't handle them properly right now. llvm-svn: 11944
* Add memory operand folding support for the SETcc family ofAlkis Evlogimenos2004-02-271-0/+12
| | | | | | instructions. llvm-svn: 11907
* Add memory operand folding support for SHLD and SHRD instructions.Alkis Evlogimenos2004-02-271-0/+11
| | | | llvm-svn: 11905
* Add memory operand folding support for SHL, SHR and SAR, SHLD instructions.Alkis Evlogimenos2004-02-271-0/+18
| | | | llvm-svn: 11903
* Move MOTy::UseType enum into MachineOperand. This eliminates theAlkis Evlogimenos2004-02-221-5/+10
| | | | | | | | | switch statements in the constructors and simplifies the implementation of the getUseType() member function. You will have to specify defs using MachineOperand::Def instead of MOTy::Def though (similarly for Use and UseAndDef). llvm-svn: 11715
* When folding memory operands in machine instructions be careful toAlkis Evlogimenos2004-02-221-2/+4
| | | | | | | leave register operands with the same use/def flags as the original instruction. llvm-svn: 11709
* Add support for GlobalAddress's for alkisChris Lattner2004-02-171-2/+8
| | | | llvm-svn: 11560
* Instructiosn with 1 memory operand have 4 operands in ourAlkis Evlogimenos2004-02-171-2/+1
| | | | | | representation.. duh! llvm-svn: 11554
* Align case statements.Alkis Evlogimenos2004-02-171-32/+32
| | | | llvm-svn: 11552
* Add TEST and XCHG memory operand support.Alkis Evlogimenos2004-02-171-1/+15
| | | | llvm-svn: 11550
* Add OR and XOR memory operand support.Alkis Evlogimenos2004-02-171-0/+18
| | | | llvm-svn: 11549
* Add memory operand folding support for MUL, DIV, IDIV, NEG, NOT,Alkis Evlogimenos2004-02-171-0/+22
| | | | | | MOVSX, and MOVZX. llvm-svn: 11546
* Add memory operand folding for CMP{rm,mr,mi}{8,16,32}, INCm{8,16,32}Alkis Evlogimenos2004-02-171-0/+21
| | | | | | and DECm{8,16,32} instructions. llvm-svn: 11545
* Add support for folding memory operands for ADC, SBB and SUB instructions.Alkis Evlogimenos2004-02-171-0/+13
| | | | llvm-svn: 11541
* Add a (hidden) option to print instructions that fail to fuse. It's lookingChris Lattner2004-02-171-8/+16
| | | | | | like compares and test's would be the next huge win... llvm-svn: 11539
* Add support for folding memory operands in MOVri{8,16,32} instructions.Alkis Evlogimenos2004-02-171-0/+3
| | | | llvm-svn: 11538
OpenPOWER on IntegriCloud