summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86CodeEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Move getX86RegNum into X86RegisterInfo and use itDuncan Sands2007-08-291-54/+1
| | | | | | | | in the trampoline lowering. Lookup the jump and mov opcodes for the trampoline rather than hard coding them. llvm-svn: 41577
* Change the x86 backend to use extract_subreg for truncation operations. ↵Christopher Lamb2007-07-291-12/+0
| | | | | | Passes DejaGnu, SingleSource and MultiSource. llvm-svn: 40578
* Trampoline codegen support for X86-32.Duncan Sands2007-07-271-8/+1
| | | | llvm-svn: 40566
* Drop 'const'Devang Patel2007-05-031-2/+2
| | | | llvm-svn: 36662
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-021-2/+2
| | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
* Do not use typeinfo to identify pass in pass manager.Devang Patel2007-05-011-2/+6
| | | | llvm-svn: 36632
* Removed tabs everywhere except autogenerated & external files. Add makeAnton Korobeynikov2007-04-161-7/+7
| | | | | | target for tabs checking. llvm-svn: 36146
* Add support for our first SSSE3 instruction "pmulhrsw".Bill Wendling2007-04-101-0/+8
| | | | llvm-svn: 35869
* Clean up.Evan Cheng2007-03-141-3/+4
| | | | llvm-svn: 35105
* X86-64 JIT is in large code model. Need stubs for direct calls.Evan Cheng2007-03-141-1/+1
| | | | llvm-svn: 35097
* Make LABEL a builtin opcode.Jim Laskey2007-01-261-0/+2
| | | | llvm-svn: 33537
* eliminate static ctors for Statistic objects.Chris Lattner2006-12-191-4/+2
| | | | llvm-svn: 32703
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-1/+1
| | | | | | is 'unsigned'. llvm-svn: 32279
* JIT large code model support.Evan Cheng2006-12-051-7/+13
| | | | llvm-svn: 32220
* - Fix X86-64 JIT by temporarily disabling code that treats GV address as 32-bitEvan Cheng2006-12-051-70/+101
| | | | | | | | immediate in small code model. The JIT cannot ensure GV's are placed in the lower 4G. - Some preliminary support for large code model. llvm-svn: 32215
* Match TargetInstrInfo changes.Evan Cheng2006-12-011-2/+2
| | | | llvm-svn: 32098
* Removed even more std::cerr and #include <iostream> things.Bill Wendling2006-11-171-3/+1
| | | | llvm-svn: 31813
* Use TargetInstrInfo::getNumOperands() instead of ↵Evan Cheng2006-11-101-20/+22
| | | | | | MachineInstr::getNumOperands(). In preparation for implicit reg def/use changes. llvm-svn: 31616
* Remove M_2_ADDR_FLAG.Evan Cheng2006-11-091-2/+5
| | | | llvm-svn: 31583
* Skip over first operand when determining REX prefix for two-address code.Evan Cheng2006-09-131-7/+14
| | | | llvm-svn: 30300
* Committing X86-64 support.Evan Cheng2006-09-081-59/+291
| | | | llvm-svn: 30177
* Clean up.Evan Cheng2006-09-071-2/+2
| | | | llvm-svn: 30140
* Watch out for variable_ops instructions.Evan Cheng2006-09-061-1/+1
| | | | llvm-svn: 30135
* Variable ops instructions may ignore the last few operands for code emission.Evan Cheng2006-09-061-1/+3
| | | | llvm-svn: 30134
* Update the X86 JIT to make it work with the new two-addr changes. This alsoChris Lattner2006-09-051-41/+52
| | | | | | adds assertions that check to make sure every operand gets emitted. llvm-svn: 30110
* s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29911
* Give a good error message when we try to jit inline asm.Chris Lattner2006-08-261-0/+3
| | | | llvm-svn: 29891
* Resolve BB references with relocation.Evan Cheng2006-07-271-1/+2
| | | | llvm-svn: 29351
* - Refactor the code that resolve basic block references to a TargetJITInfoEvan Cheng2006-07-251-16/+10
| | | | | | | | | | method. - Added synchronizeICache() to TargetJITInfo. It is called after each block of code is emitted to flush the icache. This ensures correct execution on targets that have separate dcache and icache. - Added PPC / Mac OS X specific code to do icache flushing. llvm-svn: 29276
* Hide x86 symbolsChris Lattner2006-06-281-1/+2
| | | | llvm-svn: 28976
* Eliminate unneeded parameter.Evan Cheng2006-06-221-8/+4
| | | | llvm-svn: 28907
* variable_ops instructions such as call can have any number of operands.Evan Cheng2006-06-211-1/+1
| | | | llvm-svn: 28906
* X86 integer register classes naming changes. Make them consistent with FP, ↵Evan Cheng2006-05-161-3/+3
| | | | | | vector classes. llvm-svn: 28324
* Remove a bunch more dead V9 specific stuffChris Lattner2006-05-041-6/+1
| | | | llvm-svn: 28094
* Remove some more V9-specific stuff.Chris Lattner2006-05-041-1/+0
| | | | llvm-svn: 28092
* Simplify handling of relocationsChris Lattner2006-05-041-24/+38
| | | | llvm-svn: 28090
* Change from using MachineRelocation ctors to using static methodsChris Lattner2006-05-031-3/+3
| | | | | | in MachineRelocation to create Relocations. llvm-svn: 28088
* inline a simple methodChris Lattner2006-05-031-10/+7
| | | | llvm-svn: 28083
* Suck block address tracking out of targets into the JIT Emitter. ThisChris Lattner2006-05-031-24/+9
| | | | | | | simplifies the MachineCodeEmitter interface just a little bit and makes BasicBlocks work like constant pools and jump tables. llvm-svn: 28082
* Teach the x86 jit how to handle jump tables not directly used by a jumpNate Begeman2006-05-031-0/+3
| | | | | | instruction. llvm-svn: 28080
* Change the BasicBlockAddrs map to be a vector, indexed by MBB number.Chris Lattner2006-05-031-7/+8
| | | | llvm-svn: 28069
* Several related changes:Chris Lattner2006-05-021-2/+0
| | | | | | | | | | | | | 1. Change several methods in the MachineCodeEmitter class to be pure virtual. 2. Suck emitConstantPool/initJumpTableInfo into startFunction, removing them from the MachineCodeEmitter interface, and reducing the amount of target- specific code. 3. Change the JITEmitter so that it allocates constantpools and jump tables *right* next to the functions that they belong to, instead of in a separate pool of memory. This makes all memory for a function be contiguous, and means the JITEmitter only tracks one block of memory now. llvm-svn: 28065
* Fix a purely hypothetical problem (for now): emitWord emits in the hostChris Lattner2006-05-021-5/+5
| | | | | | | | byte format. This doesn't work when using the code emitter in a cross target environment. Since the code emitter is only really used by the JIT, this isn't a current problem, but if we ever start emitting .o files, it would be. llvm-svn: 28060
* Refactor the machine code emitter interface to pull the pointers for the currentChris Lattner2006-05-021-7/+11
| | | | | | | | | | code emission location into the base class, instead of being in the derived classes. This change means that low-level methods like emitByte/emitWord now are no longer virtual (yaay for speed), and we now have a framework to support growable code segments. This implements feature request #1 of PR469. llvm-svn: 28059
* There is no reason to use a virtual method to store this word.Chris Lattner2006-05-021-2/+2
| | | | llvm-svn: 28053
* JumpTable support! What this represents is working asm and jit support forNate Begeman2006-04-221-9/+15
| | | | | | | | x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. llvm-svn: 27947
* Add a couple more pseudo instructions.Evan Cheng2006-03-221-0/+2
| | | | llvm-svn: 26939
* ConstantPoolIndex is now the displacement portion of the address (ratherEvan Cheng2006-02-261-10/+4
| | | | | | than base). llvm-svn: 26382
* - Added option -relocation-model to set relocation model. Valid values ↵Evan Cheng2006-02-221-1/+3
| | | | | | | | | | include static, pic, dynamic-no-pic, and default. PPC and x86 default is dynamic-no-pic for Darwin, pic for others. - Removed options -enable-pic and -ppc-static. llvm-svn: 26315
* Jit does not support PIC yet.Evan Cheng2006-02-181-0/+2
| | | | llvm-svn: 26278
OpenPOWER on IntegriCloud