From 2e22d33d9d256e9a1551229f1b51e2a6f02da2f6 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 28 Feb 2010 21:45:38 +0100 Subject: Enable JIT compiler for x64. Only works on Linux/x64 and Windows/x64 right now. Force an x64 build on Linux/x64 with: make CC="gcc -m64" NYI: handle on-trace OOM errors. NYI: improve register allocation for x64. --- src/Makefile | 16 +++++++++------- src/lj_arch.h | 1 - 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/Makefile b/src/Makefile index 5fef367a..261e2049 100644 --- a/src/Makefile +++ b/src/Makefile @@ -20,9 +20,6 @@ NODOTABIVER= 51 # Turn any of the optional settings on by removing the '#' in front of them. # You need to 'make clean' and 'make' again, if you change any options. # -# Note: LuaJIT can only be compiled for x86, and not for x64 (yet)! -# In the meantime, the x86 binary runs fine under a x64 OS. -# # It's recommended to compile at least for i686. By default the assembler part # of the interpreter makes use of CMOV/FCOMI*/FUCOMI* instructions, anyway. CC= gcc -m32 -march=i686 @@ -30,10 +27,14 @@ CC= gcc -m32 -march=i686 # binaries to a different machine: #CC= gcc -m32 -march=native # +# Currently LuaJIT builds by default as a 32 bit binary. Use this to force +# a native x64 build on Linux/x64: +#CC= gcc -m64 +# # Since the assembler part does NOT maintain a frame pointer, it's pointless -# to slow down the C part by not omitting it. Debugging and tracebacks are -# not affected -- the assembler part has frame unwind information and GCC -# emits it with -g (see CCDEBUG below). +# to slow down the C part by not omitting it. Debugging, tracebacks and +# unwinding are not affected -- the assembler part has frame unwind +# information and GCC emits it where needed (x64) or with -g (see CCDEBUG). CCOPT= -O2 -fomit-frame-pointer # Use this if you want to generate a smaller binary (but it's slower): #CCOPT= -Os -fomit-frame-pointer @@ -75,7 +76,8 @@ XCFLAGS= # # Use the system provided memory allocator (realloc) instead of the # bundled memory allocator. This is slower, but sometimes helpful for -# debugging. It's mandatory for Valgrind's memcheck tool, too. +# debugging. It's helpful for Valgrind's memcheck tool, too. This option +# cannot be enabled on x64, since the built-in allocator is mandatory. #XCFLAGS+= -DLUAJIT_USE_SYSMALLOC # # This define is required to run LuaJIT under Valgrind. The Valgrind diff --git a/src/lj_arch.h b/src/lj_arch.h index 111ea8c1..86a2d5ed 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h @@ -48,7 +48,6 @@ #define LJ_TARGET_X64 1 #define LJ_TARGET_X86ORX64 1 #define LJ_PAGESIZE 4096 -#define LJ_ARCH_NOJIT 1 /* NYI */ #else #error "No target architecture defined" #endif -- cgit v1.2.3-55-g6feb