summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86CodeEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* - 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
* Don't special case XS, XD prefixes.Evan Cheng2006-02-141-14/+9
| | | | llvm-svn: 26183
* Bug fix: XS, XD prefixes were being emitted twice.Evan Cheng2006-02-141-9/+9
| | | | | | XMM registers were not being handled. llvm-svn: 26182
* - Use xor to clear integer registers (set R, 0).Evan Cheng2006-02-011-1/+6
| | | | | | | | - Added a new format for instructions where the source register is implied and it is same as the destination register. Used for pseudo instructions that clear the destination register. llvm-svn: 25872
* Fix a bunch of JIT failures with the new iselChris Lattner2006-01-281-4/+15
| | | | llvm-svn: 25748
* Unbreak the JIT with SSEChris Lattner2006-01-271-0/+8
| | | | llvm-svn: 25688
* Allow jit-beta to workChris Lattner2006-01-241-1/+0
| | | | llvm-svn: 25578
* Add explicit #includes of <iostream>Chris Lattner2006-01-221-0/+1
| | | | llvm-svn: 25515
* Refactor things a bit to allow the ELF code emitter to run the X86 machine ↵Chris Lattner2005-07-111-12/+4
| | | | | | | | code emitter after itself. llvm-svn: 22376
* First round of support for doing scalar FP using the SSE2 ISA extension andNate Begeman2005-07-061-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | XMM registers. There are many known deficiencies and fixmes, which will be addressed ASAP. The major benefit of this work is that it will allow the LLVM register allocator to allocate FP registers across basic blocks. The x86 backend will still default to x87 style FP. To enable this work, you must pass -enable-sse-scalar-fp and either -sse2 or -sse3 to llc. An example before and after would be for: double foo(double *P) { double Sum = 0; int i; for (i = 0; i < 1000; ++i) Sum += P[i]; return Sum; } The inner loop looks like the following: x87: .LBB_foo_1: # no_exit fldl (%esp) faddl (%eax,%ecx,8) fstpl (%esp) incl %ecx cmpl $1000, %ecx #FP_REG_KILL jne .LBB_foo_1 # no_exit SSE2: addsd (%eax,%ecx,8), %xmm0 incl %ecx cmpl $1000, %ecx #FP_REG_KILL jne .LBB_foo_1 # no_exit llvm-svn: 22340
* Tailcalls require stubs to be emitted. Otherwise, the compilation callbackChris Lattner2005-05-191-8/+15
| | | | | | doesn't know who 'called' it. llvm-svn: 22136
* * Remove trailing whitespaceMisha Brukman2005-04-211-4/+4
| | | | | | * Convert tabs to spaces llvm-svn: 21426
* There is no reason to emit function stubs for direct calls.Chris Lattner2004-11-211-1/+1
| | | | llvm-svn: 18082
* Remove all JIT specific code and switch the code generator over to emittingChris Lattner2004-11-201-194/+26
| | | | | | relocations for global references. llvm-svn: 18068
* Dont' forget to switch back to decimal outputChris Lattner2004-11-191-1/+2
| | | | llvm-svn: 18010
* Fix a major bug in the signed shr code, which apparently only breaks 134.perl!Chris Lattner2004-11-161-1/+2
| | | | llvm-svn: 17902
* Remove a dead function, which died when we got GAS emission working (phwew,Chris Lattner2004-11-161-8/+0
| | | | | | hold your nose!) llvm-svn: 17869
* Implement a simple FIXME: if we are emitting a basic block address that hasChris Lattner2004-11-161-3/+13
| | | | | | | already been emitted, we don't have to remember it and deal with it later, just emit it directly. llvm-svn: 17868
* * Merge some win32 ifdefs togetherChris Lattner2004-11-161-22/+17
| | | | | | | | * Get rid of "emitMaybePCRelativeValue", either we want to emit a PC relative value or not: drop the maybe BS. As it turns out, the only places where the bool was a variable coming in, the bool was a dynamic constant. llvm-svn: 17867
* Add debug-only=jit printout, so we see when lazily resolved symbols areChris Lattner2004-11-151-0/+2
| | | | | | set up. llvm-svn: 17862
* Fix compilation problem; make the cast and the LHS be the same type.John Criswell2004-11-051-1/+1
| | | | llvm-svn: 17488
* Quiet VC++ warningsChris Lattner2004-11-051-2/+2
| | | | llvm-svn: 17484
* Improve compatibility with VC++, patch contributed by Morten Ofstad!Chris Lattner2004-10-181-0/+17
| | | | llvm-svn: 17126
* Unify handling of constant pool indexes with the other code paths, allowingChris Lattner2004-10-171-17/+17
| | | | | | us to use index registers for CPI's llvm-svn: 17082
* Give the X86 JIT the ability to encode global+disp constants. PatchChris Lattner2004-10-151-27/+54
| | | | | | contributed by Jeff Cohen! llvm-svn: 17010
* Fix filename: Printer.cpp has become X86AsmPrinter.cppMisha Brukman2004-09-121-1/+1
| | | | llvm-svn: 16299
* Changes For Bug 352Reid Spencer2004-09-011-3/+3
| | | | | | | | 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
* Remove dead methodChris Lattner2004-08-111-13/+0
| | | | llvm-svn: 15647
* Make sure to emit the immediate byte for instructions like:Chris Lattner2004-07-171-0/+2
| | | | | | | | shrd [mem], reg, imm This fixes the jit-ls failure on 186.crafty. llvm-svn: 14914
OpenPOWER on IntegriCloud