mirror of
https://github.com/love2d/love-android.git
synced 2026-08-21 05:00:22 +02:00
LuaJIT: Update to LuaJIT/LuaJIT@a91d0d9d3b
This commit is contained in:
@@ -60,6 +60,11 @@ local function savefile(name, mode)
|
|||||||
return check(io.open(name, mode))
|
return check(io.open(name, mode))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function set_stdout_binary(ffi)
|
||||||
|
ffi.cdef[[int _setmode(int fd, int mode);]]
|
||||||
|
ffi.C._setmode(1, 0x8000)
|
||||||
|
end
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local map_type = {
|
local map_type = {
|
||||||
@@ -125,6 +130,11 @@ local function bcsave_tail(fp, output, s)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function bcsave_raw(output, s)
|
local function bcsave_raw(output, s)
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
local ok, ffi = pcall(require, "ffi")
|
||||||
|
check(ok, "FFI library required to write binary file to stdout")
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
local fp = savefile(output, "wb")
|
local fp = savefile(output, "wb")
|
||||||
bcsave_tail(fp, output, s)
|
bcsave_tail(fp, output, s)
|
||||||
end
|
end
|
||||||
@@ -568,6 +578,9 @@ end
|
|||||||
local function bcsave_obj(ctx, output, s)
|
local function bcsave_obj(ctx, output, s)
|
||||||
local ok, ffi = pcall(require, "ffi")
|
local ok, ffi = pcall(require, "ffi")
|
||||||
check(ok, "FFI library required to write this file type")
|
check(ok, "FFI library required to write this file type")
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
if ctx.os == "windows" then
|
if ctx.os == "windows" then
|
||||||
return bcsave_peobj(ctx, output, s, ffi)
|
return bcsave_peobj(ctx, output, s, ffi)
|
||||||
elseif ctx.os == "osx" then
|
elseif ctx.os == "osx" then
|
||||||
|
|||||||
Binary file not shown.
@@ -60,6 +60,11 @@ local function savefile(name, mode)
|
|||||||
return check(io.open(name, mode))
|
return check(io.open(name, mode))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function set_stdout_binary(ffi)
|
||||||
|
ffi.cdef[[int _setmode(int fd, int mode);]]
|
||||||
|
ffi.C._setmode(1, 0x8000)
|
||||||
|
end
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local map_type = {
|
local map_type = {
|
||||||
@@ -125,6 +130,11 @@ local function bcsave_tail(fp, output, s)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function bcsave_raw(output, s)
|
local function bcsave_raw(output, s)
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
local ok, ffi = pcall(require, "ffi")
|
||||||
|
check(ok, "FFI library required to write binary file to stdout")
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
local fp = savefile(output, "wb")
|
local fp = savefile(output, "wb")
|
||||||
bcsave_tail(fp, output, s)
|
bcsave_tail(fp, output, s)
|
||||||
end
|
end
|
||||||
@@ -568,6 +578,9 @@ end
|
|||||||
local function bcsave_obj(ctx, output, s)
|
local function bcsave_obj(ctx, output, s)
|
||||||
local ok, ffi = pcall(require, "ffi")
|
local ok, ffi = pcall(require, "ffi")
|
||||||
check(ok, "FFI library required to write this file type")
|
check(ok, "FFI library required to write this file type")
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
if ctx.os == "windows" then
|
if ctx.os == "windows" then
|
||||||
return bcsave_peobj(ctx, output, s, ffi)
|
return bcsave_peobj(ctx, output, s, ffi)
|
||||||
elseif ctx.os == "osx" then
|
elseif ctx.os == "osx" then
|
||||||
|
|||||||
Binary file not shown.
@@ -60,6 +60,11 @@ local function savefile(name, mode)
|
|||||||
return check(io.open(name, mode))
|
return check(io.open(name, mode))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function set_stdout_binary(ffi)
|
||||||
|
ffi.cdef[[int _setmode(int fd, int mode);]]
|
||||||
|
ffi.C._setmode(1, 0x8000)
|
||||||
|
end
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local map_type = {
|
local map_type = {
|
||||||
@@ -125,6 +130,11 @@ local function bcsave_tail(fp, output, s)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function bcsave_raw(output, s)
|
local function bcsave_raw(output, s)
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
local ok, ffi = pcall(require, "ffi")
|
||||||
|
check(ok, "FFI library required to write binary file to stdout")
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
local fp = savefile(output, "wb")
|
local fp = savefile(output, "wb")
|
||||||
bcsave_tail(fp, output, s)
|
bcsave_tail(fp, output, s)
|
||||||
end
|
end
|
||||||
@@ -568,6 +578,9 @@ end
|
|||||||
local function bcsave_obj(ctx, output, s)
|
local function bcsave_obj(ctx, output, s)
|
||||||
local ok, ffi = pcall(require, "ffi")
|
local ok, ffi = pcall(require, "ffi")
|
||||||
check(ok, "FFI library required to write this file type")
|
check(ok, "FFI library required to write this file type")
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
if ctx.os == "windows" then
|
if ctx.os == "windows" then
|
||||||
return bcsave_peobj(ctx, output, s, ffi)
|
return bcsave_peobj(ctx, output, s, ffi)
|
||||||
elseif ctx.os == "osx" then
|
elseif ctx.os == "osx" then
|
||||||
|
|||||||
Binary file not shown.
@@ -60,6 +60,11 @@ local function savefile(name, mode)
|
|||||||
return check(io.open(name, mode))
|
return check(io.open(name, mode))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function set_stdout_binary(ffi)
|
||||||
|
ffi.cdef[[int _setmode(int fd, int mode);]]
|
||||||
|
ffi.C._setmode(1, 0x8000)
|
||||||
|
end
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local map_type = {
|
local map_type = {
|
||||||
@@ -125,6 +130,11 @@ local function bcsave_tail(fp, output, s)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function bcsave_raw(output, s)
|
local function bcsave_raw(output, s)
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
local ok, ffi = pcall(require, "ffi")
|
||||||
|
check(ok, "FFI library required to write binary file to stdout")
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
local fp = savefile(output, "wb")
|
local fp = savefile(output, "wb")
|
||||||
bcsave_tail(fp, output, s)
|
bcsave_tail(fp, output, s)
|
||||||
end
|
end
|
||||||
@@ -568,6 +578,9 @@ end
|
|||||||
local function bcsave_obj(ctx, output, s)
|
local function bcsave_obj(ctx, output, s)
|
||||||
local ok, ffi = pcall(require, "ffi")
|
local ok, ffi = pcall(require, "ffi")
|
||||||
check(ok, "FFI library required to write this file type")
|
check(ok, "FFI library required to write this file type")
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
if ctx.os == "windows" then
|
if ctx.os == "windows" then
|
||||||
return bcsave_peobj(ctx, output, s, ffi)
|
return bcsave_peobj(ctx, output, s, ffi)
|
||||||
elseif ctx.os == "osx" then
|
elseif ctx.os == "osx" then
|
||||||
|
|||||||
Binary file not shown.
@@ -1,10 +1,8 @@
|
|||||||
rem Build instruction assume using WSL + Clang for Windows (with MSVC x86+x64 toolset for -m32 switch)
|
rem Build instruction assume using WSL + Clang for Windows (with MSVC x86+x64 toolset for -m32 switch)
|
||||||
rem This assume NDK r19 or later. See https://github.com/LuaJIT/LuaJIT/issues/477 for more information.
|
rem This assume NDK r19 or later. See https://github.com/LuaJIT/LuaJIT/issues/477 for more information.
|
||||||
|
|
||||||
rem Make sure LuaJIT and the prebuilt is already in your PATH environment variable.
|
rem Make sure LuaJIT (yes, you need LuaJIT interpreter) and the NDK toolchain binaries is already in
|
||||||
rem As of commit 384d6d5 in LuaJIT v2.1 repository, lj_ircall.h.patch is no longer needed.
|
rem your PATH environment variable. If you're confused which part of the NDK should be added your path:
|
||||||
|
|
||||||
rem If you're confused which one should be added your path:
|
|
||||||
rem <NDK_ROOT>\toolchains\llvm\prebuilt\windows-x86_64\bin
|
rem <NDK_ROOT>\toolchains\llvm\prebuilt\windows-x86_64\bin
|
||||||
|
|
||||||
mkdir android\arm64-v8a
|
mkdir android\arm64-v8a
|
||||||
|
|||||||
@@ -411,7 +411,8 @@ NDKCROSS=$NDKBIN/aarch64-linux-android-
|
|||||||
NDKCC=$NDKBIN/aarch64-linux-android21-clang
|
NDKCC=$NDKBIN/aarch64-linux-android21-clang
|
||||||
make CROSS=$NDKCROSS \
|
make CROSS=$NDKCROSS \
|
||||||
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
|
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
|
||||||
TARGET_LD=$NDKCC
|
TARGET_LD=$NDKCC TARGET_AR=$NDKBIN/llvm-ar
|
||||||
|
TARGET_STRIP=$NDKBIN/llvm-strip
|
||||||
|
|
||||||
# Android/ARM, armeabi-v7a (ARMv7 VFP), Android 4.1+ (JB)
|
# Android/ARM, armeabi-v7a (ARMv7 VFP), Android 4.1+ (JB)
|
||||||
NDKDIR=/opt/android/ndk
|
NDKDIR=/opt/android/ndk
|
||||||
@@ -420,7 +421,8 @@ NDKCROSS=$NDKBIN/arm-linux-androideabi-
|
|||||||
NDKCC=$NDKBIN/armv7a-linux-androideabi16-clang
|
NDKCC=$NDKBIN/armv7a-linux-androideabi16-clang
|
||||||
make HOST_CC="gcc -m32" CROSS=$NDKCROSS \
|
make HOST_CC="gcc -m32" CROSS=$NDKCROSS \
|
||||||
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
|
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
|
||||||
TARGET_LD=$NDKCC
|
TARGET_LD=$NDKCC TARGET_AR=$NDKBIN/llvm-ar
|
||||||
|
TARGET_STRIP=$NDKBIN/llvm-strip
|
||||||
</pre>
|
</pre>
|
||||||
<p>
|
<p>
|
||||||
You can cross-compile for <b id="ios">iOS 3.0+</b> (iPhone/iPad) using the <a href="https://developer.apple.com/ios/"><span class="ext">»</span> iOS SDK</a>:
|
You can cross-compile for <b id="ios">iOS 3.0+</b> (iPhone/iPad) using the <a href="https://developer.apple.com/ios/"><span class="ext">»</span> iOS SDK</a>:
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ local function savefile(name, mode)
|
|||||||
return check(io.open(name, mode))
|
return check(io.open(name, mode))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function set_stdout_binary(ffi)
|
||||||
|
ffi.cdef[[int _setmode(int fd, int mode);]]
|
||||||
|
ffi.C._setmode(1, 0x8000)
|
||||||
|
end
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local map_type = {
|
local map_type = {
|
||||||
@@ -125,6 +130,11 @@ local function bcsave_tail(fp, output, s)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function bcsave_raw(output, s)
|
local function bcsave_raw(output, s)
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
local ok, ffi = pcall(require, "ffi")
|
||||||
|
check(ok, "FFI library required to write binary file to stdout")
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
local fp = savefile(output, "wb")
|
local fp = savefile(output, "wb")
|
||||||
bcsave_tail(fp, output, s)
|
bcsave_tail(fp, output, s)
|
||||||
end
|
end
|
||||||
@@ -568,6 +578,9 @@ end
|
|||||||
local function bcsave_obj(ctx, output, s)
|
local function bcsave_obj(ctx, output, s)
|
||||||
local ok, ffi = pcall(require, "ffi")
|
local ok, ffi = pcall(require, "ffi")
|
||||||
check(ok, "FFI library required to write this file type")
|
check(ok, "FFI library required to write this file type")
|
||||||
|
if output == "-" and jit.os == "Windows" then
|
||||||
|
set_stdout_binary(ffi)
|
||||||
|
end
|
||||||
if ctx.os == "windows" then
|
if ctx.os == "windows" then
|
||||||
return bcsave_peobj(ctx, output, s, ffi)
|
return bcsave_peobj(ctx, output, s, ffi)
|
||||||
elseif ctx.os == "osx" then
|
elseif ctx.os == "osx" then
|
||||||
|
|||||||
@@ -1037,8 +1037,7 @@ LJFOLDF(simplify_numadd_xneg)
|
|||||||
LJFOLD(SUB any KNUM)
|
LJFOLD(SUB any KNUM)
|
||||||
LJFOLDF(simplify_numsub_k)
|
LJFOLDF(simplify_numsub_k)
|
||||||
{
|
{
|
||||||
lua_Number n = knumright;
|
if (ir_knum(fright)->u64 == 0) /* x - (+0) ==> x */
|
||||||
if (n == 0.0) /* x - (+-0) ==> x */
|
|
||||||
return LEFTFOLD;
|
return LEFTFOLD;
|
||||||
return NEXTFOLD;
|
return NEXTFOLD;
|
||||||
}
|
}
|
||||||
@@ -2412,6 +2411,17 @@ LJFOLDF(xload_kptr)
|
|||||||
LJFOLD(XLOAD any any)
|
LJFOLD(XLOAD any any)
|
||||||
LJFOLDX(lj_opt_fwd_xload)
|
LJFOLDX(lj_opt_fwd_xload)
|
||||||
|
|
||||||
|
/* -- Frame handling ------------------------------------------------------ */
|
||||||
|
|
||||||
|
/* Prevent CSE of a REF_BASE operand across IR_RETF. */
|
||||||
|
LJFOLD(SUB any BASE)
|
||||||
|
LJFOLD(SUB BASE any)
|
||||||
|
LJFOLD(EQ any BASE)
|
||||||
|
LJFOLDF(fold_base)
|
||||||
|
{
|
||||||
|
return lj_opt_cselim(J, J->chain[IR_RETF]);
|
||||||
|
}
|
||||||
|
|
||||||
/* -- Write barriers ------------------------------------------------------ */
|
/* -- Write barriers ------------------------------------------------------ */
|
||||||
|
|
||||||
/* Write barriers are amenable to CSE, but not across any incremental
|
/* Write barriers are amenable to CSE, but not across any incremental
|
||||||
|
|||||||
Reference in New Issue
Block a user