Commit Graph

37 Commits

Author SHA1 Message Date
Evan Cheng eb76f7c6fd Oops.
llvm-svn: 35104
2007-03-14 19:44:58 +00:00
Evan Cheng 386dfc9251 x86-64 JIT stub codegen.
llvm-svn: 35096
2007-03-14 10:48:08 +00:00
Evan Cheng e1a95206e3 Preliminary support for X86-64 JIT stub codegen.
llvm-svn: 35095
2007-03-14 10:44:30 +00:00
Anton Korobeynikov b8d8b82950 Save all registers by default, as they can be used to pass parameters
for "inreg" calls

llvm-svn: 33631
2007-01-29 21:28:01 +00:00
Evan Cheng 62cdc3f011 - Fix X86-64 JIT by temporarily disabling code that treats GV address as 32-bit
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
2006-12-05 04:01:03 +00:00
Bill Wendling c8e81b8d48 Removed even more std::cerr and #include <iostream> things.
llvm-svn: 31813
2006-11-17 07:52:03 +00:00
Evan Cheng c5e769710e Align stubs on 4 byte boundary. This fixes 447.dealII.
llvm-svn: 31790
2006-11-16 20:13:34 +00:00
Evan Cheng ed60d16ac7 One more try.
llvm-svn: 30992
2006-10-16 23:44:08 +00:00
Evan Cheng 1367ff084d Unbreak x86-64 build.
llvm-svn: 30990
2006-10-16 22:53:28 +00:00
Evan Cheng afb610468b Added a X86CompilationCallback variant which saves XMM argument registers for targets with SSE.
llvm-svn: 30986
2006-10-16 21:01:55 +00:00
Chris Lattner 6c003a7c2d Use __USER_LABEL_PREFIX__ to get the prefix added by the current host.
llvm-svn: 30190
2006-09-08 17:03:56 +00:00
Evan Cheng 11b0a5dbd4 Committing X86-64 support.
llvm-svn: 30177
2006-09-08 06:48:29 +00:00
Evan Cheng 78bf1074fc Resolve BB references with relocation.
llvm-svn: 29351
2006-07-27 18:21:10 +00:00
Evan Cheng f6acb34d23 - Refactor the code that resolve basic block references to a TargetJITInfo
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
2006-07-25 20:40:54 +00:00
Evan Cheng 41816100f4 Fix JIT on non MacOS X i386 systems.
llvm-svn: 28992
2006-07-05 07:09:13 +00:00
Evan Cheng 28a95491d9 Let X86CompilationCallback pass previous frame and return address to X86CompilationCallback2. Remove alloca hack.
llvm-svn: 28982
2006-06-29 01:48:36 +00:00
Evan Cheng 38c5aee959 Simplify X86CompilationCallback: always align to 16-byte boundary; don't save EAX/EDX if unnecessary.
llvm-svn: 28910
2006-06-24 08:36:10 +00:00
Chris Lattner b47b8a9fad Silence -pedantic warning.
llvm-svn: 28630
2006-06-01 17:13:10 +00:00
Chris Lattner aa2372562e Patches to make the LLVM sources more -pedantic clean. Patch provided
by Anton Korobeynikov!  This is a step towards closing PR786.

llvm-svn: 28447
2006-05-24 17:04:05 +00:00
Chris Lattner e1c96369e2 Fix a purely hypothetical problem (for now): emitWord emits in the host
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
2006-05-02 19:14:47 +00:00
Jeff Cohen 71c2e0f262 Mingw32 patches supplied by Anton Korobeynikov.
llvm-svn: 28023
2006-04-29 18:41:44 +00:00
Nate Begeman 4530327c04 Keep the stack from on darwin 16-byte aligned. This fixes many JIT
failres.

llvm-svn: 27973
2006-04-25 20:54:26 +00:00
Chris Lattner ebbfb386a5 Improve compatibility with VC2005, patch by Morten Ofstad!
llvm-svn: 25653
2006-01-26 19:55:20 +00:00
Andrew Lenharth 111e5e6490 update interface
llvm-svn: 22498
2005-07-22 20:49:37 +00:00
Nate Begeman 85c7d546fe Fix lli linking on Mac OS X 10.4.1 for Intel.
llvm-svn: 22200
2005-06-08 01:02:38 +00:00
Reid Spencer 4c07caf9d4 Make sure that Cygwin assembly includes _ as part of function names.
llvm-svn: 22190
2005-06-02 21:33:19 +00:00
Nate Begeman 38724d33c1 C'mon everybody, let's modify X86JITInfo.cpp. This time, we add <iostream>
so that the shiny new use of std::cerr is defined.

llvm-svn: 22156
2005-05-20 21:29:24 +00:00
Misha Brukman eba2471fa3 Since everyone else has "fixed" this file, might as well join in the fun.
* Change assert() to std::cerr printout, as it will not appear in opt builds
* Add comments to clarify what #ifdef/#else/#endif match what condition(s)

llvm-svn: 22154
2005-05-20 19:46:50 +00:00
Chris Lattner 8deafa3378 Fix this a 3rd time :)
llvm-svn: 22151
2005-05-20 17:00:21 +00:00
Andrew Lenharth 5d37a3abae fix compilation error due to no abort being defined. There is probably a better way to do this
llvm-svn: 22150
2005-05-20 16:34:44 +00:00
Duraid Madina 6e7355e6c1 this seems dead (and broke the ia64 build, so..)
llvm-svn: 22147
2005-05-20 06:21:59 +00:00
Jeff Cohen e3948c433c Fix tail call support in VC++ builds
llvm-svn: 22143
2005-05-20 01:35:39 +00:00
Chris Lattner 83a6f107fb Fastcc passes arguments in EAX and EDX, make sure the JIT doesn't clobber them
llvm-svn: 22137
2005-05-19 06:49:17 +00:00
Misha Brukman c88330ad13 * Remove trailing whitespace
* Convert tabs to spaces

llvm-svn: 21426
2005-04-21 23:38:14 +00:00
Chris Lattner a76f09d0d3 Do not push two return addresses on the stack when we call external functions who have their addresses taken. This fixes test-call.ll
llvm-svn: 18134
2004-11-22 22:25:30 +00:00
Chris Lattner d68ebaacc0 There is no reason to emit function stubs for direct calls.
llvm-svn: 18082
2004-11-21 03:46:06 +00:00
Chris Lattner b7e72cba22 Implement the X86 JIT interfaces
llvm-svn: 18067
2004-11-20 23:54:33 +00:00