Skip to content

Commit

Permalink
x64: Enable LJ_GC64 mode by default.
Browse files Browse the repository at this point in the history
  • Loading branch information
Mike Pall committed Dec 8, 2019
1 parent 70f4b15 commit bd00094
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 17 deletions.
5 changes: 2 additions & 3 deletions doc/extensions.html
Expand Up @@ -208,9 +208,8 @@ <h3 id="string_dump"><tt>string.dump(f [,strip])</tt> generates portable bytecod
</p>
<p>
Note: <tt>LJ_GC64</tt> mode requires a different frame layout, which implies
a different, incompatible bytecode format for ports that use this mode (e.g.
ARM64 or MIPS64) or when explicitly enabled for x64. This may be rectified
in the future.
a different, incompatible bytecode format for all 64 bit ports. This may be
rectified in the future.
</p>

<h3 id="table_new"><tt>table.new(narray, nhash)</tt> allocates a pre-sized table</h3>
Expand Down
11 changes: 5 additions & 6 deletions doc/install.html
Expand Up @@ -175,12 +175,11 @@ <h2>Configuring LuaJIT</h2>
any settings.
</p>
<p>
LuaJIT on x64 currently uses 32 bit GC objects by default.
<tt>LJ_GC64</tt> mode may be explicitly enabled:
add <tt>XCFLAGS=-DLUAJIT_ENABLE_GC64</tt> to the make command or run
<tt>msvcbuild gc64</tt> for MSVC/WinSDK. Please check the note
about the <a href="extensions.html#string_dump">bytecode format</a>
differences, too.
All LuaJIT 64 bit ports use 64 bit GC objects by default (<tt>LJ_GC64</tt>).
For x64, you can select the old 32-on-64 bit mode by adding
<tt>XCFLAGS=-DLUAJIT_DISABLE_GC64</tt> to the make command.
Please check the note about the
<a href="extensions.html#string_dump">bytecode format</a> differences, too.
</p>

<h2 id="posix">POSIX Systems (Linux, OSX, *BSD etc.)</h2>
Expand Down
4 changes: 2 additions & 2 deletions src/Makefile
Expand Up @@ -110,8 +110,8 @@ XCFLAGS=
#XCFLAGS+= -DLUAJIT_NUMMODE=1
#XCFLAGS+= -DLUAJIT_NUMMODE=2
#
# Enable GC64 mode for x64.
#XCFLAGS+= -DLUAJIT_ENABLE_GC64
# Disable LJ_GC64 mode for x64.
#XCFLAGS+= -DLUAJIT_DISABLE_GC64
#
##############################################################################

Expand Down
2 changes: 1 addition & 1 deletion src/lj_arch.h
Expand Up @@ -184,7 +184,7 @@
#define LJ_TARGET_MASKROT 1
#define LJ_TARGET_UNALIGNED 1
#define LJ_ARCH_NUMMODE LJ_NUMMODE_SINGLE_DUAL
#ifdef LUAJIT_ENABLE_GC64
#ifndef LUAJIT_DISABLE_GC64
#define LJ_TARGET_GC64 1
#endif

Expand Down
12 changes: 7 additions & 5 deletions src/msvcbuild.bat
Expand Up @@ -5,6 +5,7 @@
@rem Then cd to this directory and run this script. Use the following
@rem options (in order), if needed. The default is a dynamic release build.
@rem
@rem nogc64 disable LJ_GC64 mode for x64
@rem debug emit debug symbols
@rem amalg amalgamated build
@rem static static linkage
Expand All @@ -20,7 +21,7 @@
@set LJLIB=lib /nologo /nodefaultlib
@set DASMDIR=..\dynasm
@set DASM=%DASMDIR%\dynasm.lua
@set DASC=vm_x86.dasc
@set DASC=vm_x64.dasc
@set LJDLLNAME=lua51.dll
@set LJLIBNAME=lua51.lib
@set BUILDTYPE=release
Expand All @@ -37,15 +38,16 @@ if exist minilua.exe.manifest^
@set LJARCH=x64
@minilua
@if errorlevel 8 goto :X64
@set DASC=vm_x86.dasc
@set DASMFLAGS=-D WIN -D JIT -D FFI
@set LJARCH=x86
@set LJCOMPILE=%LJCOMPILE% /arch:SSE2
:X64
@if "%1" neq "gc64" goto :NOGC64
@if "%1" neq "nogc64" goto :GC64
@shift
@set DASC=vm_x64.dasc
@set LJCOMPILE=%LJCOMPILE% /DLUAJIT_ENABLE_GC64
:NOGC64
@set DASC=vm_x86.dasc
@set LJCOMPILE=%LJCOMPILE% /DLUAJIT_DISABLE_GC64
:GC64
minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h %DASC%
@if errorlevel 1 goto :BAD

Expand Down

0 comments on commit bd00094

Please sign in to comment.