mirror of
https://github.com/wg/wrk
synced 2025-01-08 06:52:55 +08:00
upgrade LuaJIT to 2.0.4
This commit is contained in:
parent
0f8016c907
commit
7cdede916a
2
deps/luajit/COPYRIGHT
vendored
2
deps/luajit/COPYRIGHT
vendored
@ -1,7 +1,7 @@
|
||||
===============================================================================
|
||||
LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/
|
||||
|
||||
Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
4
deps/luajit/Makefile
vendored
4
deps/luajit/Makefile
vendored
@ -10,12 +10,12 @@
|
||||
# For MSVC, please follow the instructions given in src/msvcbuild.bat.
|
||||
# For MinGW and Cygwin, cd to src and run make with the Makefile there.
|
||||
#
|
||||
# Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
# Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
##############################################################################
|
||||
|
||||
MAJVER= 2
|
||||
MINVER= 0
|
||||
RELVER= 3
|
||||
RELVER= 4
|
||||
VERSION= $(MAJVER).$(MINVER).$(RELVER)
|
||||
ABIVER= 5.1
|
||||
|
||||
|
4
deps/luajit/README
vendored
4
deps/luajit/README
vendored
@ -1,11 +1,11 @@
|
||||
README for LuaJIT 2.0.3
|
||||
README for LuaJIT 2.0.4
|
||||
-----------------------
|
||||
|
||||
LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.
|
||||
|
||||
Project Homepage: http://luajit.org/
|
||||
|
||||
LuaJIT is Copyright (C) 2005-2014 Mike Pall.
|
||||
LuaJIT is Copyright (C) 2005-2015 Mike Pall.
|
||||
LuaJIT is free software, released under the MIT license.
|
||||
See full Copyright Notice in the COPYRIGHT file or in luajit.h.
|
||||
|
||||
|
2
deps/luajit/doc/bluequad-print.css
vendored
2
deps/luajit/doc/bluequad-print.css
vendored
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2004-2014 Mike Pall.
|
||||
/* Copyright (C) 2004-2015 Mike Pall.
|
||||
*
|
||||
* You are welcome to use the general ideas of this design for your own sites.
|
||||
* But please do not steal the stylesheet, the layout or the color scheme.
|
||||
|
2
deps/luajit/doc/bluequad.css
vendored
2
deps/luajit/doc/bluequad.css
vendored
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2004-2014 Mike Pall.
|
||||
/* Copyright (C) 2004-2015 Mike Pall.
|
||||
*
|
||||
* You are welcome to use the general ideas of this design for your own sites.
|
||||
* But please do not steal the stylesheet, the layout or the color scheme.
|
||||
|
56
deps/luajit/doc/changes.html
vendored
56
deps/luajit/doc/changes.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>LuaJIT Change History</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -63,7 +63,7 @@ div.major { max-width: 600px; padding: 1em; margin: 1em 0 1em 0; }
|
||||
<div id="main">
|
||||
<p>
|
||||
This is a list of changes between the released versions of LuaJIT.<br>
|
||||
The current <span style="color: #0000c0;">stable version</span> is <strong>LuaJIT 2.0.3</strong>.<br>
|
||||
The current <span style="color: #0000c0;">stable version</span> is <strong>LuaJIT 2.0.4</strong>.<br>
|
||||
</p>
|
||||
<p>
|
||||
Please check the
|
||||
@ -72,6 +72,56 @@ to see whether newer versions are available.
|
||||
</p>
|
||||
|
||||
<div class="major" style="background: #d0d0ff;">
|
||||
<h2 id="LuaJIT-2.0.4">LuaJIT 2.0.4 — 2015-05-14</h2>
|
||||
<ul>
|
||||
<li>Fix stack check in narrowing optimization.</li>
|
||||
<li>Fix Lua/C API typecheck error for special indexes.</li>
|
||||
<li>Fix string to number conversion.</li>
|
||||
<li>Fix lexer error for chunks without tokens.</li>
|
||||
<li>Don't compile <tt>IR_RETF</tt> after <tt>CALLT</tt> to ff with-side effects.</li>
|
||||
<li>Fix <tt>BC_UCLO</tt>/<tt>BC_JMP</tt> join optimization in Lua parser.</li>
|
||||
<li>Fix corner case in string to number conversion.</li>
|
||||
<li>Gracefully handle <tt>lua_error()</tt> for a suspended coroutine.</li>
|
||||
<li>Avoid error messages when building with Clang.</li>
|
||||
<li>Fix snapshot #0 handling for traces with a stack check on entry.</li>
|
||||
<li>Fix fused constant loads under high register pressure.</li>
|
||||
<li>Invalidate backpropagation cache after DCE.</li>
|
||||
<li>Fix ABC elimination.</li>
|
||||
<li>Fix debug info for main chunk of stripped bytecode.</li>
|
||||
<li>Fix FOLD rule for <tt>string.sub(s, ...) == k</tt>.</li>
|
||||
<li>Fix FOLD rule for <tt>STRREF</tt> of <tt>SNEW</tt>.</li>
|
||||
<li>Fix frame traversal while searching for error function.</li>
|
||||
<li>Prevent GC estimate miscalculation due to buffer growth.</li>
|
||||
<li>Prevent adding side traces for stack checks.</li>
|
||||
<li>Fix top slot calculation for snapshots with continuations.</li>
|
||||
<li>Fix check for reuse of SCEV results in <tt>FORL</tt>.</li>
|
||||
<li>Add PS Vita port.</li>
|
||||
<li>Fix compatibility issues with Illumos.</li>
|
||||
<li>Fix DragonFly build (unsupported).</li>
|
||||
<li>OpenBSD/x86: Better executable memory allocation for W^X mode.</li>
|
||||
<li>x86: Fix argument checks for <tt>ipairs()</tt> iterator.</li>
|
||||
<li>x86: <tt>lj_math_random_step()</tt> clobbers XMM regs on OSX Clang.</li>
|
||||
<li>x86: Fix code generation for unused result of <tt>math.random()</tt>.</li>
|
||||
<li>x64: Allow building with <tt>LUAJIT_USE_SYSMALLOC</tt> and <tt>LUAJIT_USE_VALGRIND</tt>.</li>
|
||||
<li>x86/x64: Fix argument check for bit shifts.</li>
|
||||
<li>x86/x64: Fix code generation for fused test/arith ops.</li>
|
||||
<li>ARM: Fix write barrier check in <tt>BC_USETS</tt>.</li>
|
||||
<li>PPC: Fix red zone overflow in machine code generation.</li>
|
||||
<li>PPC: Don't use <tt>mcrxr</tt> on PPE.</li>
|
||||
<li>Various archs: Fix excess stack growth in interpreter.</li>
|
||||
<li>FFI: Fix FOLD rule for <tt>TOBIT</tt> + <tt>CONV num.u32</tt>.</li>
|
||||
<li>FFI: Prevent DSE across <tt>ffi.string()</tt>.</li>
|
||||
<li>FFI: No meta fallback when indexing pointer to incomplete struct.</li>
|
||||
<li>FFI: Fix initialization of unions of subtypes.</li>
|
||||
<li>FFI: Fix cdata vs. non-cdata arithmetic and comparisons.</li>
|
||||
<li>FFI: Fix <tt>__index</tt>/<tt>__newindex</tt> metamethod resolution for ctypes.</li>
|
||||
<li>FFI: Fix compilation of reference field access.</li>
|
||||
<li>FFI: Fix frame traversal for backtraces with FFI callbacks.</li>
|
||||
<li>FFI: Fix recording of indexing a struct pointer ctype object itself.</li>
|
||||
<li>FFI: Allow non-scalar cdata to be compared for equality by address.</li>
|
||||
<li>FFI: Fix pseudo type conversions for type punning.</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="LuaJIT-2.0.3">LuaJIT 2.0.3 — 2014-03-12</h2>
|
||||
<ul>
|
||||
<li>Add PS4 port.</li>
|
||||
@ -918,7 +968,7 @@ This is the initial non-public release of LuaJIT.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
6
deps/luajit/doc/contact.html
vendored
6
deps/luajit/doc/contact.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>Contact</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -84,7 +84,7 @@ xD("fyZKB8xv\"FJytmz8.KAB0u52D")
|
||||
<h2>Copyright</h2>
|
||||
<p>
|
||||
All documentation is
|
||||
Copyright © 2005-2014 Mike Pall.
|
||||
Copyright © 2005-2015 Mike Pall.
|
||||
</p>
|
||||
|
||||
|
||||
@ -92,7 +92,7 @@ Copyright © 2005-2014 Mike Pall.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
4
deps/luajit/doc/ext_c_api.html
vendored
4
deps/luajit/doc/ext_c_api.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>Lua/C API Extensions</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -177,7 +177,7 @@ Also note that this mechanism is not without overhead.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
4
deps/luajit/doc/ext_ffi.html
vendored
4
deps/luajit/doc/ext_ffi.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>FFI Library</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -320,7 +320,7 @@ without undue conversion penalties.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
4
deps/luajit/doc/ext_ffi_api.html
vendored
4
deps/luajit/doc/ext_ffi_api.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>ffi.* API Functions</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -556,7 +556,7 @@ named <tt>i</tt>.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
4
deps/luajit/doc/ext_ffi_semantics.html
vendored
4
deps/luajit/doc/ext_ffi_semantics.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>FFI Semantics</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -1235,7 +1235,7 @@ compiled.</li>
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
6
deps/luajit/doc/ext_ffi_tutorial.html
vendored
6
deps/luajit/doc/ext_ffi_tutorial.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>FFI Tutorial</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -564,7 +564,7 @@ Thus it's not helpful and actually counter-productive to cache
|
||||
individual C functions like this:
|
||||
</p>
|
||||
<pre class="code">
|
||||
local <b>funca</b>, <b>funcb</b> = ffi.C.funcb, ffi.C.funcb -- <span style="color:#c00000;">Not helpful!</span>
|
||||
local <b>funca</b>, <b>funcb</b> = ffi.C.funca, ffi.C.funcb -- <span style="color:#c00000;">Not helpful!</span>
|
||||
local function foo(x, n)
|
||||
for i=1,n do <b>funcb</b>(<b>funca</b>(x, i), 1) end
|
||||
end
|
||||
@ -591,7 +591,7 @@ it to a local variable in the function scope is unnecessary.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
6
deps/luajit/doc/ext_jit.html
vendored
6
deps/luajit/doc/ext_jit.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>jit.* Library</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -151,7 +151,7 @@ Contains the target OS name:
|
||||
<h3 id="jit_arch"><tt>jit.arch</tt></h3>
|
||||
<p>
|
||||
Contains the target architecture name:
|
||||
"x86", "x64" or "ppcspe".
|
||||
"x86", "x64", "arm", "ppc", "ppcspe", or "mips".
|
||||
</p>
|
||||
|
||||
<h2 id="jit_opt"><tt>jit.opt.*</tt> — JIT compiler optimization control</h2>
|
||||
@ -189,7 +189,7 @@ if you want to know more.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
4
deps/luajit/doc/extensions.html
vendored
4
deps/luajit/doc/extensions.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>Extensions</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -398,7 +398,7 @@ lead to the termination of the process.</li>
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
4
deps/luajit/doc/faq.html
vendored
4
deps/luajit/doc/faq.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>Frequently Asked Questions (FAQ)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -174,7 +174,7 @@ the development of certain features, if they are important to you.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
65
deps/luajit/doc/install.html
vendored
65
deps/luajit/doc/install.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>Installation</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -127,7 +127,7 @@ operating systems, CPUs and compilers:
|
||||
<tr class="odd">
|
||||
<td class="compatcpu"><a href="#cross2">ARMv5+<br>ARM9E+</a></td>
|
||||
<td class="compatos">GCC 4.2+</td>
|
||||
<td class="compatos">GCC 4.2+</td>
|
||||
<td class="compatos">GCC 4.2+<br>PSP2 (<a href="#psvita">PS VITA</a>)</td>
|
||||
<td class="compatos">GCC 4.2+</td>
|
||||
<td class="compatos compatno"> </td>
|
||||
</tr>
|
||||
@ -188,8 +188,8 @@ open a terminal window and change to this directory. Now unpack the archive
|
||||
and change to the newly created directory:
|
||||
</p>
|
||||
<pre class="code">
|
||||
tar zxf LuaJIT-2.0.3.tar.gz
|
||||
cd LuaJIT-2.0.3</pre>
|
||||
tar zxf LuaJIT-2.0.4.tar.gz
|
||||
cd LuaJIT-2.0.4</pre>
|
||||
<h3>Building LuaJIT</h3>
|
||||
<p>
|
||||
The supplied Makefiles try to auto-detect the settings needed for your
|
||||
@ -458,41 +458,56 @@ ISDKF="-arch armv7 -isysroot $ISDK/SDKs/$ISDKVER"
|
||||
make HOST_CC="gcc -m32 -arch i386" CROSS=$ISDKP TARGET_FLAGS="$ISDKF" \
|
||||
TARGET_SYS=iOS
|
||||
</pre>
|
||||
|
||||
<h3 id="consoles">Cross-compiling for consoles</h3>
|
||||
<p>
|
||||
You can cross-compile for <b id="ps3">PS3</b> using the PS3 SDK from
|
||||
a Linux host or a Windows host (requires 32 bit MinGW (GCC) on the host,
|
||||
too). Due to restrictions on consoles, the JIT compiler is disabled and
|
||||
only the fast interpreter is built:
|
||||
Building LuaJIT for consoles requires both a supported host compiler
|
||||
(x86 or x64) and a cross-compiler (to PPC or ARM) from the official
|
||||
console SDK.
|
||||
</p>
|
||||
<p>
|
||||
Due to restrictions on consoles, the JIT compiler is disabled and only
|
||||
the fast interpreter is built. This is still faster than plain Lua,
|
||||
but much slower than the JIT compiler. The FFI is disabled, too, since
|
||||
it's not very useful in such an environment.
|
||||
</p>
|
||||
<p>
|
||||
The following commands build a static library <tt>libluajit.a</tt>,
|
||||
which can be linked against your game, just like the Lua library.
|
||||
</p>
|
||||
<p>
|
||||
To cross-compile for <b id="ps3">PS3</b> from a Linux host (requires
|
||||
32 bit GCC, i.e. multilib Linux/x64) or a Windows host (requires
|
||||
32 bit MinGW), run this command:
|
||||
</p>
|
||||
<pre class="code">
|
||||
make HOST_CC="gcc -m32" CROSS=ppu-lv2-
|
||||
</pre>
|
||||
<p>
|
||||
You can cross-compile for <b id="ps4">PS4</b> from a Windows host using
|
||||
the PS4 SDK (ORBIS) plus 64 bit MSVC. Due to restrictions on
|
||||
consoles, the JIT compiler is disabled and only the fast interpreter
|
||||
is built.
|
||||
</p>
|
||||
<p>
|
||||
Open a "Visual Studio .NET Command Prompt" (64 bit host compiler),
|
||||
<tt>cd</tt> to the directory where you've unpacked the sources and run
|
||||
the following commands. This builds a static library <tt>libluajit.a</tt>,
|
||||
which can be linked against your game, just like the Lua library.
|
||||
To cross-compile for <b id="ps4">PS4</b> from a Windows host,
|
||||
open a "Visual Studio .NET Command Prompt" (64 bit host compiler),
|
||||
<tt>cd</tt> to the directory where you've unpacked the sources and
|
||||
run the following commands:
|
||||
</p>
|
||||
<pre class="code">
|
||||
cd src
|
||||
ps4build
|
||||
</pre>
|
||||
<p>
|
||||
You can cross-compile for <b id="xbox360">Xbox 360</b> using the
|
||||
Xbox 360 SDK (MSVC + XEDK). Due to restrictions on consoles, the
|
||||
JIT compiler is disabled and only the fast interpreter is built.
|
||||
To cross-compile for <b id="psvita">PS Vita</b> from a Windows host,
|
||||
open a "Visual Studio .NET Command Prompt" (32 bit host compiler),
|
||||
<tt>cd</tt> to the directory where you've unpacked the sources and
|
||||
run the following commands:
|
||||
</p>
|
||||
<pre class="code">
|
||||
cd src
|
||||
psvitabuild
|
||||
</pre>
|
||||
<p>
|
||||
Open a "Visual Studio .NET Command Prompt" (32 bit host compiler),
|
||||
To cross-compile for <b id="xbox360">Xbox 360</b> from a Windows host,
|
||||
open a "Visual Studio .NET Command Prompt" (32 bit host compiler),
|
||||
<tt>cd</tt> to the directory where you've unpacked the sources and run
|
||||
the following commands. This builds a static library <tt>luajit20.lib</tt>,
|
||||
which can be linked against your game, just like the Lua library.
|
||||
the following commands:
|
||||
</p>
|
||||
<pre class="code">
|
||||
cd src
|
||||
@ -621,7 +636,7 @@ to me (the upstream) and not you (the package maintainer), anyway.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
14
deps/luajit/doc/luajit.html
vendored
14
deps/luajit/doc/luajit.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>LuaJIT</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -38,6 +38,9 @@ table.os1 td {
|
||||
table.os2 td {
|
||||
color: #ffa040;
|
||||
}
|
||||
table.os3 td {
|
||||
color: #40ffff;
|
||||
}
|
||||
table.compiler td {
|
||||
color: #2080ff;
|
||||
background: #62bf41;
|
||||
@ -147,7 +150,7 @@ Lua is a powerful, dynamic and light-weight programming language.
|
||||
It may be embedded or used as a general-purpose, stand-alone language.
|
||||
</p>
|
||||
<p>
|
||||
LuaJIT is Copyright © 2005-2014 Mike Pall, released under the
|
||||
LuaJIT is Copyright © 2005-2015 Mike Pall, released under the
|
||||
<a href="http://www.opensource.org/licenses/mit-license.php"><span class="ext">»</span> MIT open source license</a>.
|
||||
</p>
|
||||
<p>
|
||||
@ -158,7 +161,10 @@ LuaJIT is Copyright © 2005-2014 Mike Pall, released under the
|
||||
<tr><td>Windows</td><td>Linux</td><td>BSD</td><td>OSX</td><td>POSIX</td></tr>
|
||||
</table>
|
||||
<table class="feature os os2">
|
||||
<tr><td><span style="font-size:90%;">Embedded</span></td><td>Android</td><td>iOS</td><td>PS3</td><td>PS4</td><td>Xbox 360</td></tr>
|
||||
<tr><td><span style="font-size:90%;">Embedded</span></td><td>Android</td><td>iOS</td></tr>
|
||||
</table>
|
||||
<table class="feature os os3">
|
||||
<tr><td>PS3</td><td>PS4</td><td>PS Vita</td><td>Xbox 360</td></tr>
|
||||
</table>
|
||||
<table class="feature compiler">
|
||||
<tr><td>GCC</td><td>CLANG<br>LLVM</td><td>MSVC</td></tr>
|
||||
@ -218,7 +224,7 @@ Please select a sub-topic in the navigation bar to learn more about LuaJIT.
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
6
deps/luajit/doc/running.html
vendored
6
deps/luajit/doc/running.html
vendored
@ -4,7 +4,7 @@
|
||||
<title>Running LuaJIT</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -186,7 +186,7 @@ itself. For a description of their options and output format, please
|
||||
read the comment block at the start of their source.
|
||||
They can be found in the <tt>lib</tt> directory of the source
|
||||
distribution or installed under the <tt>jit</tt> directory. By default
|
||||
this is <tt>/usr/local/share/luajit-2.0.3/jit</tt> on POSIX
|
||||
this is <tt>/usr/local/share/luajit-2.0.4/jit</tt> on POSIX
|
||||
systems.
|
||||
</p>
|
||||
|
||||
@ -296,7 +296,7 @@ Here are the parameters and their default settings:
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
17
deps/luajit/doc/status.html
vendored
17
deps/luajit/doc/status.html
vendored
@ -1,10 +1,10 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Status & Roadmap</title>
|
||||
<title>Status</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2014, Mike Pall">
|
||||
<meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
|
||||
<meta name="Language" content="en">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
||||
@ -17,7 +17,7 @@ ul li { padding-bottom: 0.3em; }
|
||||
<a href="http://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
|
||||
</div>
|
||||
<div id="head">
|
||||
<h1>Status & Roadmap</h1>
|
||||
<h1>Status</h1>
|
||||
</div>
|
||||
<div id="nav">
|
||||
<ul><li>
|
||||
@ -102,20 +102,11 @@ handled correctly. The error may fall through an on-trace
|
||||
garbage collector.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Roadmap</h2>
|
||||
<p>
|
||||
Please refer to the
|
||||
<a href="http://www.freelists.org/post/luajit/LuaJIT-Roadmap-20122013"><span class="ext">»</span> LuaJIT Roadmap 2012/2013</a> and an
|
||||
<a href="http://www.freelists.org/post/luajit/LuaJIT-Roadmap-20122013-UPDATE"><span class="ext">»</span> update on release planning</a> for details.
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
<br class="flush">
|
||||
</div>
|
||||
<div id="foot">
|
||||
<hr class="hide">
|
||||
Copyright © 2005-2014 Mike Pall
|
||||
Copyright © 2005-2015 Mike Pall
|
||||
<span class="noprint">
|
||||
·
|
||||
<a href="contact.html">Contact</a>
|
||||
|
2
deps/luajit/dynasm/dasm_arm.h
vendored
2
deps/luajit/dynasm/dasm_arm.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** DynASM ARM encoding engine.
|
||||
** Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
** Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
** Released under the MIT license. See dynasm.lua for full copyright notice.
|
||||
*/
|
||||
|
||||
|
9
deps/luajit/dynasm/dasm_arm.lua
vendored
9
deps/luajit/dynasm/dasm_arm.lua
vendored
@ -1,7 +1,7 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- DynASM ARM module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- See dynasm.lua for full copyright notice.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
@ -923,19 +923,22 @@ local function parse_template(params, template, nparams, pos)
|
||||
end
|
||||
|
||||
map_op[".template__"] = function(params, template, nparams)
|
||||
if not params then return sub(template, 9) end
|
||||
if not params then return template:gsub("%x%x%x%x%x%x%x%x", "") end
|
||||
|
||||
-- Limit number of section buffer positions used by a single dasm_put().
|
||||
-- A single opcode needs a maximum of 3 positions.
|
||||
if secpos+3 > maxsecpos then wflush() end
|
||||
local pos = wpos()
|
||||
local apos, spos = #actargs, secpos
|
||||
local lpos, apos, spos = #actlist, #actargs, secpos
|
||||
|
||||
local ok, err
|
||||
for t in gmatch(template, "[^|]+") do
|
||||
ok, err = pcall(parse_template, params, t, nparams, pos)
|
||||
if ok then return end
|
||||
secpos = spos
|
||||
actlist[lpos+1] = nil
|
||||
actlist[lpos+2] = nil
|
||||
actlist[lpos+3] = nil
|
||||
actargs[apos+1] = nil
|
||||
actargs[apos+2] = nil
|
||||
actargs[apos+3] = nil
|
||||
|
2
deps/luajit/dynasm/dasm_mips.h
vendored
2
deps/luajit/dynasm/dasm_mips.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** DynASM MIPS encoding engine.
|
||||
** Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
** Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
** Released under the MIT license. See dynasm.lua for full copyright notice.
|
||||
*/
|
||||
|
||||
|
2
deps/luajit/dynasm/dasm_mips.lua
vendored
2
deps/luajit/dynasm/dasm_mips.lua
vendored
@ -1,7 +1,7 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- DynASM MIPS module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- See dynasm.lua for full copyright notice.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
2
deps/luajit/dynasm/dasm_ppc.h
vendored
2
deps/luajit/dynasm/dasm_ppc.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** DynASM PPC encoding engine.
|
||||
** Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
** Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
** Released under the MIT license. See dynasm.lua for full copyright notice.
|
||||
*/
|
||||
|
||||
|
2
deps/luajit/dynasm/dasm_ppc.lua
vendored
2
deps/luajit/dynasm/dasm_ppc.lua
vendored
@ -1,7 +1,7 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- DynASM PPC module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- See dynasm.lua for full copyright notice.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
2
deps/luajit/dynasm/dasm_proto.h
vendored
2
deps/luajit/dynasm/dasm_proto.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** DynASM encoding engine prototypes.
|
||||
** Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
** Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
** Released under the MIT license. See dynasm.lua for full copyright notice.
|
||||
*/
|
||||
|
||||
|
2
deps/luajit/dynasm/dasm_x64.lua
vendored
2
deps/luajit/dynasm/dasm_x64.lua
vendored
@ -1,7 +1,7 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- DynASM x64 module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- See dynasm.lua for full copyright notice.
|
||||
------------------------------------------------------------------------------
|
||||
-- This module just sets 64 bit mode for the combined x86/x64 module.
|
||||
|
2
deps/luajit/dynasm/dasm_x86.h
vendored
2
deps/luajit/dynasm/dasm_x86.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** DynASM x86 encoding engine.
|
||||
** Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
** Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
** Released under the MIT license. See dynasm.lua for full copyright notice.
|
||||
*/
|
||||
|
||||
|
10
deps/luajit/dynasm/dasm_x86.lua
vendored
10
deps/luajit/dynasm/dasm_x86.lua
vendored
@ -1,7 +1,7 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- DynASM x86/x64 module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- See dynasm.lua for full copyright notice.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
@ -1081,6 +1081,9 @@ local map_op = {
|
||||
btr_2 = "mrqdw:0FB3Rm|miqdw:0FBA6mU",
|
||||
bts_2 = "mrqdw:0FABRm|miqdw:0FBA5mU",
|
||||
|
||||
shld_3 = "mriqdw:0FA4RmU|mrCqdw:0FA5Rm",
|
||||
shrd_3 = "mriqdw:0FACRmU|mrCqdw:0FADRm",
|
||||
|
||||
rdtsc_0 = "0F31", -- P1+
|
||||
cpuid_0 = "0FA2", -- P1+
|
||||
|
||||
@ -1114,6 +1117,9 @@ local map_op = {
|
||||
fucompp_0 = "DAE9",
|
||||
fcompp_0 = "DED9",
|
||||
|
||||
fldenv_1 = "x.:D94m",
|
||||
fnstenv_1 = "x.:D96m",
|
||||
fstenv_1 = "x.:9BD96m",
|
||||
fldcw_1 = "xw:nD95m",
|
||||
fstcw_1 = "xw:n9BD97m",
|
||||
fnstcw_1 = "xw:nD97m",
|
||||
@ -1189,6 +1195,8 @@ local map_op = {
|
||||
cvttps2dq_2 = "rmo:F30F5BrM",
|
||||
cvttsd2si_2 = "rr/do:F20F2CrM|rr/qo:|rx/dq:|rxq:",
|
||||
cvttss2si_2 = "rr/do:F30F2CrM|rr/qo:|rxd:|rx/qd:",
|
||||
fxsave_1 = "x.:0FAE0m",
|
||||
fxrstor_1 = "x.:0FAE1m",
|
||||
ldmxcsr_1 = "xd:0FAE2m",
|
||||
lfence_0 = "0FAEE8",
|
||||
maskmovdqu_2 = "rro:660FF7rM",
|
||||
|
4
deps/luajit/dynasm/dynasm.lua
vendored
4
deps/luajit/dynasm/dynasm.lua
vendored
@ -2,7 +2,7 @@
|
||||
-- DynASM. A dynamic assembler for code generation engines.
|
||||
-- Originally designed and implemented for LuaJIT.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- See below for full copyright notice.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
@ -17,7 +17,7 @@ local _info = {
|
||||
url = "http://luajit.org/dynasm.html",
|
||||
license = "MIT",
|
||||
copyright = [[
|
||||
Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
2
deps/luajit/etc/luajit.1
vendored
2
deps/luajit/etc/luajit.1
vendored
@ -74,7 +74,7 @@ luajit \-jv \-e "for i=1,10 do for j=1,10 do for k=1,100 do end end end"
|
||||
Runs some nested loops and shows the resulting traces.
|
||||
.SH COPYRIGHT
|
||||
.PP
|
||||
\fBLuaJIT\fR is Copyright \(co 2005-2014 Mike Pall.
|
||||
\fBLuaJIT\fR is Copyright \(co 2005-2015 Mike Pall.
|
||||
.br
|
||||
\fBLuaJIT\fR is open source software, released under the MIT license.
|
||||
.SH SEE ALSO
|
||||
|
2
deps/luajit/etc/luajit.pc
vendored
2
deps/luajit/etc/luajit.pc
vendored
@ -1,7 +1,7 @@
|
||||
# Package information for LuaJIT to be used by pkg-config.
|
||||
majver=2
|
||||
minver=0
|
||||
relver=3
|
||||
relver=4
|
||||
version=${majver}.${minver}.${relver}
|
||||
abiver=5.1
|
||||
|
||||
|
20
deps/luajit/src/Makefile
vendored
20
deps/luajit/src/Makefile
vendored
@ -7,12 +7,12 @@
|
||||
# Also works with MinGW and Cygwin on Windows.
|
||||
# Please check msvcbuild.bat for building with MSVC on Windows.
|
||||
#
|
||||
# Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
# Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
##############################################################################
|
||||
|
||||
MAJVER= 2
|
||||
MINVER= 0
|
||||
RELVER= 3
|
||||
RELVER= 4
|
||||
ABIVER= 5.1
|
||||
NODOTABIVER= 51
|
||||
|
||||
@ -122,8 +122,10 @@ XCFLAGS=
|
||||
#
|
||||
# Use the system provided memory allocator (realloc) instead of the
|
||||
# bundled memory allocator. This is slower, but sometimes helpful for
|
||||
# debugging. It's helpful for Valgrind's memcheck tool, too. This option
|
||||
# cannot be enabled on x64, since the built-in allocator is mandatory.
|
||||
# debugging. This option cannot be enabled on x64, since realloc usually
|
||||
# doesn't return addresses in the right address range.
|
||||
# OTOH this option is mandatory for Valgrind's memcheck tool on x64 and
|
||||
# the only way to get useful results from it for all other architectures.
|
||||
#XCFLAGS+= -DLUAJIT_USE_SYSMALLOC
|
||||
#
|
||||
# This define is required to run LuaJIT under Valgrind. The Valgrind
|
||||
@ -288,15 +290,15 @@ ifeq (Windows,$(TARGET_SYS))
|
||||
TARGET_XSHLDFLAGS= -shared
|
||||
TARGET_DYNXLDOPTS=
|
||||
else
|
||||
ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector 2>/dev/null || echo 1))
|
||||
TARGET_XCFLAGS+= -fno-stack-protector
|
||||
endif
|
||||
ifeq (Darwin,$(TARGET_SYS))
|
||||
ifeq (,$(MACOSX_DEPLOYMENT_TARGET))
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.4
|
||||
endif
|
||||
TARGET_STRIP+= -x
|
||||
TARGET_AR+= 2>/dev/null
|
||||
ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector 2>/dev/null || echo 1))
|
||||
TARGET_XCFLAGS+= -fno-stack-protector
|
||||
endif
|
||||
TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC
|
||||
TARGET_DYNXLDOPTS=
|
||||
TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER)
|
||||
@ -308,14 +310,10 @@ else
|
||||
ifeq (iOS,$(TARGET_SYS))
|
||||
TARGET_STRIP+= -x
|
||||
TARGET_AR+= 2>/dev/null
|
||||
TARGET_XCFLAGS+= -fno-stack-protector
|
||||
TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC
|
||||
TARGET_DYNXLDOPTS=
|
||||
TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER)
|
||||
else
|
||||
ifneq (,$(findstring stack-protector,$(shell $(TARGET_CC) -dumpspecs)))
|
||||
TARGET_XCFLAGS+= -fno-stack-protector
|
||||
endif
|
||||
ifneq (SunOS,$(TARGET_SYS))
|
||||
ifneq (PS3,$(TARGET_SYS))
|
||||
TARGET_XLDFLAGS+= -Wl,-E
|
||||
|
2
deps/luajit/src/Makefile.dep
vendored
2
deps/luajit/src/Makefile.dep
vendored
@ -90,7 +90,7 @@ lj_ctype.o: lj_ctype.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \
|
||||
lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_ctype.h lj_ccallback.h
|
||||
lj_debug.o: lj_debug.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \
|
||||
lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h lj_state.h lj_frame.h \
|
||||
lj_bc.h lj_jit.h lj_ir.h
|
||||
lj_bc.h lj_vm.h lj_jit.h lj_ir.h
|
||||
lj_dispatch.o: lj_dispatch.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \
|
||||
lj_err.h lj_errmsg.h lj_func.h lj_str.h lj_tab.h lj_meta.h lj_debug.h \
|
||||
lj_state.h lj_frame.h lj_bc.h lj_ff.h lj_ffdef.h lj_jit.h lj_ir.h \
|
||||
|
2
deps/luajit/src/host/buildvm.c
vendored
2
deps/luajit/src/host/buildvm.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** LuaJIT VM builder.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** This is a tool to build the hand-tuned assembler code required for
|
||||
** LuaJIT's bytecode interpreter. It supports a variety of output formats
|
||||
|
2
deps/luajit/src/host/buildvm.h
vendored
2
deps/luajit/src/host/buildvm.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** LuaJIT VM builder.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _BUILDVM_H
|
||||
|
4
deps/luajit/src/host/buildvm_asm.c
vendored
4
deps/luajit/src/host/buildvm_asm.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** LuaJIT VM builder: Assembler source code emitter.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "buildvm.h"
|
||||
@ -286,7 +286,7 @@ void emit_asm(BuildCtx *ctx)
|
||||
fprintf(ctx->fp, "\n");
|
||||
switch (ctx->mode) {
|
||||
case BUILD_elfasm:
|
||||
#if !LJ_TARGET_PS3
|
||||
#if !(LJ_TARGET_PS3 || LJ_TARGET_PSVITA)
|
||||
fprintf(ctx->fp, "\t.section .note.GNU-stack,\"\"," ELFASM_PX "progbits\n");
|
||||
#endif
|
||||
#if LJ_TARGET_PPCSPE
|
||||
|
2
deps/luajit/src/host/buildvm_fold.c
vendored
2
deps/luajit/src/host/buildvm_fold.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** LuaJIT VM builder: IR folding hash table generator.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "buildvm.h"
|
||||
|
2
deps/luajit/src/host/buildvm_lib.c
vendored
2
deps/luajit/src/host/buildvm_lib.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** LuaJIT VM builder: library definition compiler.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "buildvm.h"
|
||||
|
2
deps/luajit/src/host/buildvm_peobj.c
vendored
2
deps/luajit/src/host/buildvm_peobj.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** LuaJIT VM builder: PE object emitter.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Only used for building on Windows, since we cannot assume the presence
|
||||
** of a suitable assembler. The host and target byte order must match.
|
||||
|
2
deps/luajit/src/host/genminilua.lua
vendored
2
deps/luajit/src/host/genminilua.lua
vendored
@ -2,7 +2,7 @@
|
||||
-- Lua script to generate a customized, minified version of Lua.
|
||||
-- The resulting 'minilua' is used for the build process of LuaJIT.
|
||||
----------------------------------------------------------------------------
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
|
4
deps/luajit/src/jit/bc.lua
vendored
4
deps/luajit/src/jit/bc.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- LuaJIT bytecode listing module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
--
|
||||
@ -41,7 +41,7 @@
|
||||
|
||||
-- Cache some library functions and objects.
|
||||
local jit = require("jit")
|
||||
assert(jit.version_num == 20003, "LuaJIT core/library version mismatch")
|
||||
assert(jit.version_num == 20004, "LuaJIT core/library version mismatch")
|
||||
local jutil = require("jit.util")
|
||||
local vmdef = require("jit.vmdef")
|
||||
local bit = require("bit")
|
||||
|
6
deps/luajit/src/jit/bcsave.lua
vendored
6
deps/luajit/src/jit/bcsave.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- LuaJIT module to save/list bytecode.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
--
|
||||
@ -11,7 +11,7 @@
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
local jit = require("jit")
|
||||
assert(jit.version_num == 20003, "LuaJIT core/library version mismatch")
|
||||
assert(jit.version_num == 20004, "LuaJIT core/library version mismatch")
|
||||
local bit = require("bit")
|
||||
|
||||
-- Symbol name prefix for LuaJIT bytecode.
|
||||
@ -69,7 +69,7 @@ local map_arch = {
|
||||
|
||||
local map_os = {
|
||||
linux = true, windows = true, osx = true, freebsd = true, netbsd = true,
|
||||
openbsd = true, solaris = true,
|
||||
openbsd = true, dragonfly = true, solaris = true,
|
||||
}
|
||||
|
||||
local function checkarg(str, map, err)
|
||||
|
2
deps/luajit/src/jit/dis_arm.lua
vendored
2
deps/luajit/src/jit/dis_arm.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- LuaJIT ARM disassembler module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
-- This is a helper module used by the LuaJIT machine code dumper module.
|
||||
|
2
deps/luajit/src/jit/dis_mips.lua
vendored
2
deps/luajit/src/jit/dis_mips.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- LuaJIT MIPS disassembler module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT/X license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
-- This is a helper module used by the LuaJIT machine code dumper module.
|
||||
|
2
deps/luajit/src/jit/dis_mipsel.lua
vendored
2
deps/luajit/src/jit/dis_mipsel.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- LuaJIT MIPSEL disassembler wrapper module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
-- This module just exports the little-endian functions from the
|
||||
|
2
deps/luajit/src/jit/dis_ppc.lua
vendored
2
deps/luajit/src/jit/dis_ppc.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- LuaJIT PPC disassembler module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT/X license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
-- This is a helper module used by the LuaJIT machine code dumper module.
|
||||
|
2
deps/luajit/src/jit/dis_x64.lua
vendored
2
deps/luajit/src/jit/dis_x64.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- LuaJIT x64 disassembler wrapper module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
-- This module just exports the 64 bit functions from the combined
|
||||
|
2
deps/luajit/src/jit/dis_x86.lua
vendored
2
deps/luajit/src/jit/dis_x86.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- LuaJIT x86/x64 disassembler module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
-- This is a helper module used by the LuaJIT machine code dumper module.
|
||||
|
4
deps/luajit/src/jit/dump.lua
vendored
4
deps/luajit/src/jit/dump.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- LuaJIT compiler dump module.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
--
|
||||
@ -55,7 +55,7 @@
|
||||
|
||||
-- Cache some library functions and objects.
|
||||
local jit = require("jit")
|
||||
assert(jit.version_num == 20003, "LuaJIT core/library version mismatch")
|
||||
assert(jit.version_num == 20004, "LuaJIT core/library version mismatch")
|
||||
local jutil = require("jit.util")
|
||||
local vmdef = require("jit.vmdef")
|
||||
local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc
|
||||
|
4
deps/luajit/src/jit/v.lua
vendored
4
deps/luajit/src/jit/v.lua
vendored
@ -1,7 +1,7 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- Verbose mode of the LuaJIT compiler.
|
||||
--
|
||||
-- Copyright (C) 2005-2014 Mike Pall. All rights reserved.
|
||||
-- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
|
||||
-- Released under the MIT license. See Copyright Notice in luajit.h
|
||||
----------------------------------------------------------------------------
|
||||
--
|
||||
@ -59,7 +59,7 @@
|
||||
|
||||
-- Cache some library functions and objects.
|
||||
local jit = require("jit")
|
||||
assert(jit.version_num == 20003, "LuaJIT core/library version mismatch")
|
||||
assert(jit.version_num == 20004, "LuaJIT core/library version mismatch")
|
||||
local jutil = require("jit.util")
|
||||
local vmdef = require("jit.vmdef")
|
||||
local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo
|
||||
|
4
deps/luajit/src/lib_aux.c
vendored
4
deps/luajit/src/lib_aux.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Auxiliary library for the Lua/C API.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major parts taken verbatim or adapted from the Lua interpreter.
|
||||
** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
@ -302,7 +302,7 @@ static int panic(lua_State *L)
|
||||
|
||||
#ifdef LUAJIT_USE_SYSMALLOC
|
||||
|
||||
#if LJ_64
|
||||
#if LJ_64 && !defined(LUAJIT_USE_VALGRIND)
|
||||
#error "Must use builtin allocator for 64 bit target"
|
||||
#endif
|
||||
|
||||
|
2
deps/luajit/src/lib_base.c
vendored
2
deps/luajit/src/lib_base.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Base and coroutine library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major portions taken verbatim or adapted from the Lua interpreter.
|
||||
** Copyright (C) 1994-2011 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
|
2
deps/luajit/src/lib_bit.c
vendored
2
deps/luajit/src/lib_bit.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Bit manipulation library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lib_bit_c
|
||||
|
2
deps/luajit/src/lib_debug.c
vendored
2
deps/luajit/src/lib_debug.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Debug library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major portions taken verbatim or adapted from the Lua interpreter.
|
||||
** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
|
3
deps/luajit/src/lib_ffi.c
vendored
3
deps/luajit/src/lib_ffi.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** FFI library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lib_ffi_c
|
||||
@ -136,6 +136,7 @@ static int ffi_index_meta(lua_State *L, CTState *cts, CType *ct, MMS mm)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
copyTV(L, base, L->top);
|
||||
tv = L->top-1;
|
||||
}
|
||||
return lj_meta_tailcall(L, tv);
|
||||
|
2
deps/luajit/src/lib_init.c
vendored
2
deps/luajit/src/lib_init.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Library initialization.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major parts taken verbatim from the Lua interpreter.
|
||||
** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
|
4
deps/luajit/src/lib_io.c
vendored
4
deps/luajit/src/lib_io.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** I/O library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major portions taken verbatim or adapted from the Lua interpreter.
|
||||
** Copyright (C) 1994-2011 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
@ -426,7 +426,7 @@ LJLIB_CF(io_popen)
|
||||
LJLIB_CF(io_tmpfile)
|
||||
{
|
||||
IOFileUD *iof = io_file_new(L);
|
||||
#if LJ_TARGET_PS3 || LJ_TARGET_PS4
|
||||
#if LJ_TARGET_PS3 || LJ_TARGET_PS4 || LJ_TARGET_PSVITA
|
||||
iof->fp = NULL; errno = ENOSYS;
|
||||
#else
|
||||
iof->fp = tmpfile();
|
||||
|
2
deps/luajit/src/lib_jit.c
vendored
2
deps/luajit/src/lib_jit.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** JIT library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lib_jit_c
|
||||
|
2
deps/luajit/src/lib_math.c
vendored
2
deps/luajit/src/lib_math.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Math library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
|
13
deps/luajit/src/lib_os.c
vendored
13
deps/luajit/src/lib_os.c
vendored
@ -1,13 +1,12 @@
|
||||
/*
|
||||
** OS library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major portions taken verbatim or adapted from the Lua interpreter.
|
||||
** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <locale.h>
|
||||
#include <time.h>
|
||||
|
||||
#define lib_os_c
|
||||
@ -27,6 +26,10 @@
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
#if !LJ_TARGET_PSVITA
|
||||
#include <locale.h>
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
#define LJLIB_MODULE_os
|
||||
@ -70,7 +73,7 @@ LJLIB_CF(os_rename)
|
||||
|
||||
LJLIB_CF(os_tmpname)
|
||||
{
|
||||
#if LJ_TARGET_PS3 || LJ_TARGET_PS4
|
||||
#if LJ_TARGET_PS3 || LJ_TARGET_PS4 || LJ_TARGET_PSVITA
|
||||
lj_err_caller(L, LJ_ERR_OSUNIQF);
|
||||
return 0;
|
||||
#else
|
||||
@ -254,6 +257,9 @@ LJLIB_CF(os_difftime)
|
||||
|
||||
LJLIB_CF(os_setlocale)
|
||||
{
|
||||
#if LJ_TARGET_PSVITA
|
||||
lua_pushliteral(L, "C");
|
||||
#else
|
||||
GCstr *s = lj_lib_optstr(L, 1);
|
||||
const char *str = s ? strdata(s) : NULL;
|
||||
int opt = lj_lib_checkopt(L, 2, 6,
|
||||
@ -265,6 +271,7 @@ LJLIB_CF(os_setlocale)
|
||||
else if (opt == 4) opt = LC_MONETARY;
|
||||
else if (opt == 6) opt = LC_ALL;
|
||||
lua_pushstring(L, setlocale(opt, str));
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
2
deps/luajit/src/lib_package.c
vendored
2
deps/luajit/src/lib_package.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Package library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major portions taken verbatim or adapted from the Lua interpreter.
|
||||
** Copyright (C) 1994-2012 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
|
2
deps/luajit/src/lib_string.c
vendored
2
deps/luajit/src/lib_string.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** String library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major portions taken verbatim or adapted from the Lua interpreter.
|
||||
** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
|
2
deps/luajit/src/lib_table.c
vendored
2
deps/luajit/src/lib_table.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Table library.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major portions taken verbatim or adapted from the Lua interpreter.
|
||||
** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
|
14
deps/luajit/src/lj_alloc.c
vendored
14
deps/luajit/src/lj_alloc.c
vendored
@ -179,23 +179,29 @@ static LJ_AINLINE int CALL_MUNMAP(void *ptr, size_t size)
|
||||
|
||||
#if defined(MAP_32BIT)
|
||||
|
||||
#if defined(__sun__)
|
||||
#define MMAP_REGION_START ((uintptr_t)0x1000)
|
||||
#else
|
||||
/* Actually this only gives us max. 1GB in current Linux kernels. */
|
||||
#define MMAP_REGION_START ((uintptr_t)0)
|
||||
#endif
|
||||
|
||||
static LJ_AINLINE void *CALL_MMAP(size_t size)
|
||||
{
|
||||
int olderr = errno;
|
||||
void *ptr = mmap(NULL, size, MMAP_PROT, MAP_32BIT|MMAP_FLAGS, -1, 0);
|
||||
void *ptr = mmap((void *)MMAP_REGION_START, size, MMAP_PROT, MAP_32BIT|MMAP_FLAGS, -1, 0);
|
||||
errno = olderr;
|
||||
return ptr;
|
||||
}
|
||||
|
||||
#elif LJ_TARGET_OSX || LJ_TARGET_PS4 || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
||||
#elif LJ_TARGET_OSX || LJ_TARGET_PS4 || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__sun__)
|
||||
|
||||
/* OSX and FreeBSD mmap() use a naive first-fit linear search.
|
||||
** That's perfect for us. Except that -pagezero_size must be set for OSX,
|
||||
** otherwise the lower 4GB are blocked. And the 32GB RLIMIT_DATA needs
|
||||
** to be reduced to 250MB on FreeBSD.
|
||||
*/
|
||||
#if LJ_TARGET_OSX
|
||||
#if LJ_TARGET_OSX || defined(__DragonFly__)
|
||||
#define MMAP_REGION_START ((uintptr_t)0x10000)
|
||||
#elif LJ_TARGET_PS4
|
||||
#define MMAP_REGION_START ((uintptr_t)0x4000)
|
||||
@ -232,7 +238,7 @@ static LJ_AINLINE void *CALL_MMAP(size_t size)
|
||||
return p;
|
||||
}
|
||||
if (p != CMFAIL) munmap(p, size);
|
||||
#ifdef __sun__
|
||||
#if defined(__sun__) || defined(__DragonFly__)
|
||||
alloc_hint += 0x1000000; /* Need near-exhaustive linear scan. */
|
||||
if (alloc_hint + size < MMAP_REGION_END) continue;
|
||||
#endif
|
||||
|
2
deps/luajit/src/lj_api.c
vendored
2
deps/luajit/src/lj_api.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Public Lua/C API.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
**
|
||||
** Major portions taken verbatim or adapted from the Lua interpreter.
|
||||
** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
|
||||
|
17
deps/luajit/src/lj_arch.h
vendored
17
deps/luajit/src/lj_arch.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Target architecture selection.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_ARCH_H
|
||||
@ -67,7 +67,8 @@
|
||||
#elif defined(__MACH__) && defined(__APPLE__)
|
||||
#define LUAJIT_OS LUAJIT_OS_OSX
|
||||
#elif (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
|
||||
defined(__NetBSD__) || defined(__OpenBSD__)) && !defined(__ORBIS__)
|
||||
defined(__NetBSD__) || defined(__OpenBSD__) || \
|
||||
defined(__DragonFly__)) && !defined(__ORBIS__)
|
||||
#define LUAJIT_OS LUAJIT_OS_BSD
|
||||
#elif (defined(__sun__) && defined(__svr4__)) || defined(__CYGWIN__)
|
||||
#define LUAJIT_OS LUAJIT_OS_POSIX
|
||||
@ -111,6 +112,11 @@
|
||||
#define NULL ((void*)0)
|
||||
#endif
|
||||
|
||||
#ifdef __psp2__
|
||||
#define LJ_TARGET_PSVITA 1
|
||||
#define LJ_TARGET_CONSOLE 1
|
||||
#endif
|
||||
|
||||
#if _XBOX_VER >= 200
|
||||
#define LJ_TARGET_XBOX360 1
|
||||
#define LJ_TARGET_CONSOLE 1
|
||||
@ -175,7 +181,9 @@
|
||||
#define LJ_TARGET_UNIFYROT 2 /* Want only IR_BROR. */
|
||||
#define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL
|
||||
|
||||
#if __ARM_ARCH_7__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH_7S__
|
||||
#if __ARM_ARCH____ARM_ARCH_8__ || __ARM_ARCH_8A__
|
||||
#define LJ_ARCH_VERSION 80
|
||||
#elif __ARM_ARCH_7__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH_7S__ || __ARM_ARCH_7VE__
|
||||
#define LJ_ARCH_VERSION 70
|
||||
#elif __ARM_ARCH_6T2__
|
||||
#define LJ_ARCH_VERSION 61
|
||||
@ -334,6 +342,9 @@
|
||||
#if defined(__mips_soft_float)
|
||||
#error "No support for MIPS CPUs without FPU"
|
||||
#endif
|
||||
#if defined(_LP64)
|
||||
#error "No support for MIPS64"
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
8
deps/luajit/src/lj_asm.c
vendored
8
deps/luajit/src/lj_asm.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** IR assembler (SSA IR -> machine code).
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lj_asm_c
|
||||
@ -353,6 +353,7 @@ static Reg ra_rematk(ASMState *as, IRRef ref)
|
||||
static int32_t ra_spill(ASMState *as, IRIns *ir)
|
||||
{
|
||||
int32_t slot = ir->s;
|
||||
lua_assert(ir >= as->ir + REF_TRUE);
|
||||
if (!ra_hasspill(slot)) {
|
||||
if (irt_is64(ir->t)) {
|
||||
slot = as->evenspill;
|
||||
@ -1372,6 +1373,11 @@ static void asm_head_side(ASMState *as)
|
||||
int pass3 = 0;
|
||||
IRRef i;
|
||||
|
||||
if (as->snapno && as->topslot > as->parent->topslot) {
|
||||
/* Force snap #0 alloc to prevent register overwrite in stack check. */
|
||||
as->snapno = 0;
|
||||
asm_snap_alloc(as);
|
||||
}
|
||||
allow = asm_head_side_base(as, irp, allow);
|
||||
|
||||
/* Scan all parent SLOADs and collect register dependencies. */
|
||||
|
2
deps/luajit/src/lj_asm.h
vendored
2
deps/luajit/src/lj_asm.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** IR assembler (SSA IR -> machine code).
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_ASM_H
|
||||
|
2
deps/luajit/src/lj_asm_arm.h
vendored
2
deps/luajit/src/lj_asm_arm.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** ARM IR assembler (SSA IR -> machine code).
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
/* -- Register allocator extensions --------------------------------------- */
|
||||
|
2
deps/luajit/src/lj_asm_mips.h
vendored
2
deps/luajit/src/lj_asm_mips.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** MIPS IR assembler (SSA IR -> machine code).
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
/* -- Register allocator extensions --------------------------------------- */
|
||||
|
4
deps/luajit/src/lj_asm_ppc.h
vendored
4
deps/luajit/src/lj_asm_ppc.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** PPC IR assembler (SSA IR -> machine code).
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
/* -- Register allocator extensions --------------------------------------- */
|
||||
@ -49,6 +49,8 @@ static void asm_exitstub_setup(ASMState *as, ExitNo nexits)
|
||||
{
|
||||
ExitNo i;
|
||||
MCode *mxp = as->mctop;
|
||||
if (mxp - (nexits + 3 + MCLIM_REDZONE) < as->mclim)
|
||||
asm_mclimit(as);
|
||||
/* 1: mflr r0; bl ->vm_exit_handler; li r0, traceno; bl <1; bl <1; ... */
|
||||
for (i = nexits-1; (int32_t)i >= 0; i--)
|
||||
*--mxp = PPCI_BL|(((-3-i)&0x00ffffffu)<<2);
|
||||
|
22
deps/luajit/src/lj_asm_x86.h
vendored
22
deps/luajit/src/lj_asm_x86.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** x86/x64 IR assembler (SSA IR -> machine code).
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
/* -- Guard handling ------------------------------------------------------ */
|
||||
@ -325,6 +325,14 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow)
|
||||
as->mrm.base = as->mrm.idx = RID_NONE;
|
||||
return RID_MRM;
|
||||
}
|
||||
} else if (ir->o == IR_KINT64) {
|
||||
RegSet avail = as->freeset & ~as->modset & RSET_GPR;
|
||||
lua_assert(allow != RSET_EMPTY);
|
||||
if (!(avail & (avail-1))) { /* Fuse if less than two regs available. */
|
||||
as->mrm.ofs = ptr2addr(ir_kint64(ir));
|
||||
as->mrm.base = as->mrm.idx = RID_NONE;
|
||||
return RID_MRM;
|
||||
}
|
||||
} else if (mayfuse(as, ref)) {
|
||||
RegSet xallow = (allow & RSET_GPR) ? allow : RSET_GPR;
|
||||
if (ir->o == IR_SLOAD) {
|
||||
@ -361,7 +369,7 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow)
|
||||
return RID_MRM;
|
||||
}
|
||||
}
|
||||
if (!(as->freeset & allow) &&
|
||||
if (!(as->freeset & allow) && !irref_isk(ref) &&
|
||||
(allow == RSET_EMPTY || ra_hasspill(ir->s) || iscrossref(as, ref)))
|
||||
goto fusespill;
|
||||
return ra_allocref(as, ref, allow);
|
||||
@ -571,7 +579,7 @@ static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci)
|
||||
lua_assert(!irt_ispri(ir->t));
|
||||
ra_destreg(as, ir, RID_RET);
|
||||
}
|
||||
} else if (LJ_32 && irt_isfp(ir->t)) {
|
||||
} else if (LJ_32 && irt_isfp(ir->t) && !(ci->flags & CCI_CASTU64)) {
|
||||
emit_x87op(as, XI_FPOP); /* Pop unused result from x87 st0. */
|
||||
}
|
||||
}
|
||||
@ -1828,8 +1836,12 @@ static void asm_intarith(ASMState *as, IRIns *ir, x86Arith xa)
|
||||
Reg dest, right;
|
||||
int32_t k = 0;
|
||||
if (as->flagmcp == as->mcp) { /* Drop test r,r instruction. */
|
||||
as->flagmcp = NULL;
|
||||
as->mcp += (LJ_64 && *as->mcp < XI_TESTb) ? 3 : 2;
|
||||
MCode *p = as->mcp + ((LJ_64 && *as->mcp < XI_TESTb) ? 3 : 2);
|
||||
if ((p[1] & 15) < 14) {
|
||||
if ((p[1] & 15) >= 12) p[1] -= 4; /* L <->S, NL <-> NS */
|
||||
as->flagmcp = NULL;
|
||||
as->mcp = p;
|
||||
} /* else: cannot transform LE/NLE to cc without use of OF. */
|
||||
}
|
||||
right = IR(rref)->r;
|
||||
if (ra_hasreg(right)) {
|
||||
|
2
deps/luajit/src/lj_bc.c
vendored
2
deps/luajit/src/lj_bc.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Bytecode instruction modes.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lj_bc_c
|
||||
|
2
deps/luajit/src/lj_bc.h
vendored
2
deps/luajit/src/lj_bc.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Bytecode instruction format.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_BC_H
|
||||
|
2
deps/luajit/src/lj_bcdump.h
vendored
2
deps/luajit/src/lj_bcdump.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Bytecode dump definitions.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_BCDUMP_H
|
||||
|
2
deps/luajit/src/lj_bcread.c
vendored
2
deps/luajit/src/lj_bcread.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Bytecode reader.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lj_bcread_c
|
||||
|
2
deps/luajit/src/lj_bcwrite.c
vendored
2
deps/luajit/src/lj_bcwrite.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Bytecode writer.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lj_bcwrite_c
|
||||
|
10
deps/luajit/src/lj_carith.c
vendored
10
deps/luajit/src/lj_carith.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C data arithmetic.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "lj_obj.h"
|
||||
@ -62,7 +62,7 @@ static int carith_checkarg(lua_State *L, CTState *cts, CDArith *ca)
|
||||
TValue *o2 = i == 0 ? o+1 : o-1;
|
||||
CType *ct = ctype_raw(cts, cdataV(o2)->ctypeid);
|
||||
ca->ct[i] = NULL;
|
||||
ca->p[i] = NULL;
|
||||
ca->p[i] = (uint8_t *)strVdata(o);
|
||||
ok = 0;
|
||||
if (ctype_isenum(ct->info)) {
|
||||
CTSize ofs;
|
||||
@ -79,7 +79,7 @@ static int carith_checkarg(lua_State *L, CTState *cts, CDArith *ca)
|
||||
}
|
||||
} else {
|
||||
ca->ct[i] = NULL;
|
||||
ca->p[i] = NULL;
|
||||
ca->p[i] = (void *)(intptr_t)1; /* To make it unequal. */
|
||||
ok = 0;
|
||||
}
|
||||
}
|
||||
@ -234,7 +234,9 @@ static int lj_carith_meta(lua_State *L, CTState *cts, CDArith *ca, MMS mm)
|
||||
const char *repr[2];
|
||||
int i, isenum = -1, isstr = -1;
|
||||
if (mm == MM_eq) { /* Equality checks never raise an error. */
|
||||
setboolV(L->top-1, 0);
|
||||
int eq = ca->p[0] == ca->p[1];
|
||||
setboolV(L->top-1, eq);
|
||||
setboolV(&G(L)->tmptv2, eq); /* Remember for trace recorder. */
|
||||
return 1;
|
||||
}
|
||||
for (i = 0; i < 2; i++) {
|
||||
|
2
deps/luajit/src/lj_carith.h
vendored
2
deps/luajit/src/lj_carith.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C data arithmetic.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_CARITH_H
|
||||
|
2
deps/luajit/src/lj_ccall.c
vendored
2
deps/luajit/src/lj_ccall.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** FFI C call handling.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "lj_obj.h"
|
||||
|
2
deps/luajit/src/lj_ccall.h
vendored
2
deps/luajit/src/lj_ccall.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** FFI C call handling.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_CCALL_H
|
||||
|
2
deps/luajit/src/lj_ccallback.c
vendored
2
deps/luajit/src/lj_ccallback.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** FFI C callback handling.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "lj_obj.h"
|
||||
|
2
deps/luajit/src/lj_ccallback.h
vendored
2
deps/luajit/src/lj_ccallback.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** FFI C callback handling.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_CCALLBACK_H
|
||||
|
3
deps/luajit/src/lj_cconv.c
vendored
3
deps/luajit/src/lj_cconv.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C type conversions.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "lj_obj.h"
|
||||
@ -702,6 +702,7 @@ static void cconv_substruct_init(CTState *cts, CType *d, uint8_t *dp,
|
||||
} else if (ctype_isxattrib(df->info, CTA_SUBTYPE)) {
|
||||
cconv_substruct_init(cts, ctype_rawchild(cts, df),
|
||||
dp+df->size, o, len, ip);
|
||||
if ((d->info & CTF_UNION)) break;
|
||||
} /* Ignore all other entries in the chain. */
|
||||
}
|
||||
}
|
||||
|
2
deps/luajit/src/lj_cconv.h
vendored
2
deps/luajit/src/lj_cconv.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C type conversions.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_CCONV_H
|
||||
|
20
deps/luajit/src/lj_cdata.c
vendored
20
deps/luajit/src/lj_cdata.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C data management.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "lj_obj.h"
|
||||
@ -127,16 +127,16 @@ collect_attrib:
|
||||
integer_key:
|
||||
if (ctype_ispointer(ct->info)) {
|
||||
CTSize sz = lj_ctype_size(cts, ctype_cid(ct->info)); /* Element size. */
|
||||
if (sz != CTSIZE_INVALID) {
|
||||
if (ctype_isptr(ct->info)) {
|
||||
p = (uint8_t *)cdata_getptr(p, ct->size);
|
||||
} else if ((ct->info & (CTF_VECTOR|CTF_COMPLEX))) {
|
||||
if ((ct->info & CTF_COMPLEX)) idx &= 1;
|
||||
*qual |= CTF_CONST; /* Valarray elements are constant. */
|
||||
}
|
||||
*pp = p + idx*(int32_t)sz;
|
||||
return ct;
|
||||
if (sz == CTSIZE_INVALID)
|
||||
lj_err_caller(cts->L, LJ_ERR_FFI_INVSIZE);
|
||||
if (ctype_isptr(ct->info)) {
|
||||
p = (uint8_t *)cdata_getptr(p, ct->size);
|
||||
} else if ((ct->info & (CTF_VECTOR|CTF_COMPLEX))) {
|
||||
if ((ct->info & CTF_COMPLEX)) idx &= 1;
|
||||
*qual |= CTF_CONST; /* Valarray elements are constant. */
|
||||
}
|
||||
*pp = p + idx*(int32_t)sz;
|
||||
return ct;
|
||||
}
|
||||
} else if (tviscdata(key)) { /* Integer cdata key. */
|
||||
GCcdata *cdk = cdataV(key);
|
||||
|
2
deps/luajit/src/lj_cdata.h
vendored
2
deps/luajit/src/lj_cdata.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C data management.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_CDATA_H
|
||||
|
2
deps/luajit/src/lj_clib.c
vendored
2
deps/luajit/src/lj_clib.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** FFI C library loader.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "lj_obj.h"
|
||||
|
2
deps/luajit/src/lj_clib.h
vendored
2
deps/luajit/src/lj_clib.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** FFI C library loader.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_CLIB_H
|
||||
|
2
deps/luajit/src/lj_cparse.c
vendored
2
deps/luajit/src/lj_cparse.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C declaration parser.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "lj_obj.h"
|
||||
|
2
deps/luajit/src/lj_cparse.h
vendored
2
deps/luajit/src/lj_cparse.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C declaration parser.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_CPARSE_H
|
||||
|
82
deps/luajit/src/lj_crecord.c
vendored
82
deps/luajit/src/lj_crecord.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Trace recorder for C data operations.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lj_ffrecord_c
|
||||
@ -794,7 +794,7 @@ again:
|
||||
}
|
||||
} else if (tref_isstr(idx)) {
|
||||
GCstr *name = strV(&rd->argv[1]);
|
||||
if (cd->ctypeid == CTID_CTYPEID)
|
||||
if (cd && cd->ctypeid == CTID_CTYPEID)
|
||||
ct = ctype_raw(cts, crec_constructor(J, cd, ptr));
|
||||
if (ctype_isstruct(ct->info)) {
|
||||
CTSize fofs;
|
||||
@ -835,6 +835,7 @@ again:
|
||||
CType *cct = ctype_rawchild(cts, ct);
|
||||
if (ctype_isstruct(cct->info)) {
|
||||
ct = cct;
|
||||
cd = NULL;
|
||||
if (tref_isstr(idx)) goto again;
|
||||
}
|
||||
}
|
||||
@ -847,8 +848,11 @@ again:
|
||||
|
||||
/* Resolve reference for field. */
|
||||
ct = ctype_get(cts, sid);
|
||||
if (ctype_isref(ct->info))
|
||||
if (ctype_isref(ct->info)) {
|
||||
ptr = emitir(IRT(IR_XLOAD, IRT_PTR), ptr, 0);
|
||||
sid = ctype_cid(ct->info);
|
||||
ct = ctype_get(cts, sid);
|
||||
}
|
||||
|
||||
while (ctype_isattrib(ct->info))
|
||||
ct = ctype_child(cts, ct); /* Skip attributes. */
|
||||
@ -1317,7 +1321,8 @@ static TRef crec_arith_ptr(jit_State *J, TRef *sp, CType **s, MMS mm)
|
||||
}
|
||||
|
||||
/* Record ctype arithmetic metamethods. */
|
||||
static void crec_arith_meta(jit_State *J, CTState *cts, RecordFFData *rd)
|
||||
static TRef crec_arith_meta(jit_State *J, TRef *sp, CType **s, CTState *cts,
|
||||
RecordFFData *rd)
|
||||
{
|
||||
cTValue *tv = NULL;
|
||||
if (J->base[0]) {
|
||||
@ -1338,13 +1343,20 @@ static void crec_arith_meta(jit_State *J, CTState *cts, RecordFFData *rd)
|
||||
if (tvisfunc(tv)) {
|
||||
J->base[-1] = lj_ir_kfunc(J, funcV(tv)) | TREF_FRAME;
|
||||
rd->nres = -1; /* Pending tailcall. */
|
||||
return;
|
||||
return 0;
|
||||
} /* NYI: non-function metamethods. */
|
||||
} else if ((MMS)rd->data == MM_eq) {
|
||||
J->base[0] = TREF_FALSE;
|
||||
return;
|
||||
} else if ((MMS)rd->data == MM_eq) { /* Fallback cdata pointer comparison. */
|
||||
if (sp[0] && sp[1] && ctype_isnum(s[0]->info) == ctype_isnum(s[1]->info)) {
|
||||
/* Assume true comparison. Fixup and emit pending guard later. */
|
||||
lj_ir_set(J, IRTG(IR_EQ, IRT_PTR), sp[0], sp[1]);
|
||||
J->postproc = LJ_POST_FIXGUARD;
|
||||
return TREF_TRUE;
|
||||
} else {
|
||||
return TREF_FALSE;
|
||||
}
|
||||
}
|
||||
lj_trace_err(J, LJ_TRERR_BADTYPE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void LJ_FASTCALL recff_cdata_arith(jit_State *J, RecordFFData *rd)
|
||||
@ -1357,7 +1369,7 @@ void LJ_FASTCALL recff_cdata_arith(jit_State *J, RecordFFData *rd)
|
||||
TRef tr = J->base[i];
|
||||
CType *ct = ctype_get(cts, CTID_DOUBLE);
|
||||
if (!tr) {
|
||||
goto trymeta;
|
||||
lj_trace_err(J, LJ_TRERR_BADTYPE);
|
||||
} else if (tref_iscdata(tr)) {
|
||||
CTypeID id = argv2cdata(J, tr, &rd->argv[i])->ctypeid;
|
||||
IRType t;
|
||||
@ -1387,11 +1399,12 @@ void LJ_FASTCALL recff_cdata_arith(jit_State *J, RecordFFData *rd)
|
||||
}
|
||||
if (ctype_isenum(ct->info)) ct = ctype_child(cts, ct);
|
||||
if (ctype_isnum(ct->info)) {
|
||||
if (t == IRT_CDATA) goto trymeta;
|
||||
if (t == IRT_I64 || t == IRT_U64) lj_needsplit(J);
|
||||
tr = emitir(IRT(IR_XLOAD, t), tr, 0);
|
||||
} else if (!(ctype_isptr(ct->info) || ctype_isrefarray(ct->info))) {
|
||||
goto trymeta;
|
||||
if (t == IRT_CDATA) {
|
||||
tr = 0;
|
||||
} else {
|
||||
if (t == IRT_I64 || t == IRT_U64) lj_needsplit(J);
|
||||
tr = emitir(IRT(IR_XLOAD, t), tr, 0);
|
||||
}
|
||||
}
|
||||
} else if (tref_isnil(tr)) {
|
||||
tr = lj_ir_kptr(J, NULL);
|
||||
@ -1411,10 +1424,17 @@ void LJ_FASTCALL recff_cdata_arith(jit_State *J, RecordFFData *rd)
|
||||
emitir(IRTG(IR_EQ, IRT_STR), tr, lj_ir_kstr(J, str));
|
||||
ct = ctype_child(cts, cct);
|
||||
tr = lj_ir_kint(J, (int32_t)ofs);
|
||||
} /* else: interpreter will throw. */
|
||||
} /* else: interpreter will throw. */
|
||||
} else { /* Interpreter will throw or return false. */
|
||||
ct = ctype_get(cts, CTID_P_VOID);
|
||||
}
|
||||
} else if (ctype_isptr(ct->info)) {
|
||||
tr = emitir(IRT(IR_ADD, IRT_PTR), tr, lj_ir_kintp(J, sizeof(GCstr)));
|
||||
} else {
|
||||
ct = ctype_get(cts, CTID_P_VOID);
|
||||
}
|
||||
} else if (!tref_isnum(tr)) {
|
||||
goto trymeta;
|
||||
tr = 0;
|
||||
ct = ctype_get(cts, CTID_P_VOID);
|
||||
}
|
||||
ok:
|
||||
s[i] = ct;
|
||||
@ -1422,22 +1442,20 @@ void LJ_FASTCALL recff_cdata_arith(jit_State *J, RecordFFData *rd)
|
||||
}
|
||||
{
|
||||
TRef tr;
|
||||
if ((tr = crec_arith_int64(J, sp, s, (MMS)rd->data)) ||
|
||||
(tr = crec_arith_ptr(J, sp, s, (MMS)rd->data))) {
|
||||
J->base[0] = tr;
|
||||
/* Fixup cdata comparisons, too. Avoids some cdata escapes. */
|
||||
if (J->postproc == LJ_POST_FIXGUARD && frame_iscont(J->L->base-1) &&
|
||||
!irt_isguard(J->guardemit)) {
|
||||
const BCIns *pc = frame_contpc(J->L->base-1) - 1;
|
||||
if (bc_op(*pc) <= BC_ISNEP) {
|
||||
setframe_pc(&J2G(J)->tmptv, pc);
|
||||
J2G(J)->tmptv.u32.lo = ((tref_istrue(tr) ^ bc_op(*pc)) & 1);
|
||||
J->postproc = LJ_POST_FIXCOMP;
|
||||
}
|
||||
if (!(tr = crec_arith_int64(J, sp, s, (MMS)rd->data)) &&
|
||||
!(tr = crec_arith_ptr(J, sp, s, (MMS)rd->data)) &&
|
||||
!(tr = crec_arith_meta(J, sp, s, cts, rd)))
|
||||
return;
|
||||
J->base[0] = tr;
|
||||
/* Fixup cdata comparisons, too. Avoids some cdata escapes. */
|
||||
if (J->postproc == LJ_POST_FIXGUARD && frame_iscont(J->L->base-1) &&
|
||||
!irt_isguard(J->guardemit)) {
|
||||
const BCIns *pc = frame_contpc(J->L->base-1) - 1;
|
||||
if (bc_op(*pc) <= BC_ISNEP) {
|
||||
setframe_pc(&J2G(J)->tmptv, pc);
|
||||
J2G(J)->tmptv.u32.lo = ((tref_istrue(tr) ^ bc_op(*pc)) & 1);
|
||||
J->postproc = LJ_POST_FIXCOMP;
|
||||
}
|
||||
} else {
|
||||
trymeta:
|
||||
crec_arith_meta(J, cts, rd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
2
deps/luajit/src/lj_crecord.h
vendored
2
deps/luajit/src/lj_crecord.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Trace recorder for C data operations.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_CRECORD_H
|
||||
|
2
deps/luajit/src/lj_ctype.c
vendored
2
deps/luajit/src/lj_ctype.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C type management.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#include "lj_obj.h"
|
||||
|
2
deps/luajit/src/lj_ctype.h
vendored
2
deps/luajit/src/lj_ctype.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** C type management.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_CTYPE_H
|
||||
|
8
deps/luajit/src/lj_debug.c
vendored
8
deps/luajit/src/lj_debug.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Debugging and introspection.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lj_debug_c
|
||||
@ -14,6 +14,7 @@
|
||||
#include "lj_state.h"
|
||||
#include "lj_frame.h"
|
||||
#include "lj_bc.h"
|
||||
#include "lj_vm.h"
|
||||
#if LJ_HASJIT
|
||||
#include "lj_jit.h"
|
||||
#endif
|
||||
@ -86,7 +87,8 @@ static BCPos debug_framepc(lua_State *L, GCfunc *fn, cTValue *nextframe)
|
||||
if (frame_islua(f)) {
|
||||
f = frame_prevl(f);
|
||||
} else {
|
||||
if (frame_isc(f))
|
||||
if (frame_isc(f) || (LJ_HASFFI && frame_iscont(f) &&
|
||||
(f-1)->u32.lo == LJ_CONT_FFI_CALLBACK))
|
||||
cf = cframe_raw(cframe_prev(cf));
|
||||
f = frame_prevd(f);
|
||||
}
|
||||
@ -463,7 +465,7 @@ int lj_debug_getinfo(lua_State *L, const char *what, lj_Debug *ar, int ext)
|
||||
lj_debug_shortname(ar->short_src, name);
|
||||
ar->linedefined = (int)firstline;
|
||||
ar->lastlinedefined = (int)(firstline + pt->numline);
|
||||
ar->what = firstline ? "Lua" : "main";
|
||||
ar->what = (firstline || !pt->numline) ? "Lua" : "main";
|
||||
} else {
|
||||
ar->source = "=[C]";
|
||||
ar->short_src[0] = '[';
|
||||
|
2
deps/luajit/src/lj_debug.h
vendored
2
deps/luajit/src/lj_debug.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Debugging and introspection.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_DEBUG_H
|
||||
|
10
deps/luajit/src/lj_def.h
vendored
10
deps/luajit/src/lj_def.h
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** LuaJIT common internal definitions.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#ifndef _LJ_DEF_H
|
||||
@ -111,7 +111,7 @@ typedef uintptr_t BloomFilter;
|
||||
#define bloomset(b, x) ((b) |= bloombit((x)))
|
||||
#define bloomtest(b, x) ((b) & bloombit((x)))
|
||||
|
||||
#if defined(__GNUC__)
|
||||
#if defined(__GNUC__) || defined(__psp2__)
|
||||
|
||||
#define LJ_NORET __attribute__((noreturn))
|
||||
#define LJ_ALIGN(n) __attribute__((aligned(n)))
|
||||
@ -119,7 +119,7 @@ typedef uintptr_t BloomFilter;
|
||||
#define LJ_AINLINE inline __attribute__((always_inline))
|
||||
#define LJ_NOINLINE __attribute__((noinline))
|
||||
|
||||
#if defined(__ELF__) || defined(__MACH__)
|
||||
#if defined(__ELF__) || defined(__MACH__) || defined(__psp2__)
|
||||
#if !((defined(__sun__) && defined(__svr4__)) || defined(__CELLOS_LV2__))
|
||||
#define LJ_NOAPI extern __attribute__((visibility("hidden")))
|
||||
#endif
|
||||
@ -150,6 +150,9 @@ static LJ_AINLINE uint32_t lj_fls(uint32_t x)
|
||||
#if defined(__arm__)
|
||||
static LJ_AINLINE uint32_t lj_bswap(uint32_t x)
|
||||
{
|
||||
#if defined(__psp2__)
|
||||
return __builtin_rev(x);
|
||||
#else
|
||||
uint32_t r;
|
||||
#if __ARM_ARCH_6__ || __ARM_ARCH_6J__ || __ARM_ARCH_6T2__ || __ARM_ARCH_6Z__ ||\
|
||||
__ARM_ARCH_6ZK__ || __ARM_ARCH_7__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__
|
||||
@ -163,6 +166,7 @@ static LJ_AINLINE uint32_t lj_bswap(uint32_t x)
|
||||
#endif
|
||||
return ((r & 0xff00ffffu) >> 8) ^ lj_ror(x, 8);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static LJ_AINLINE uint64_t lj_bswap64(uint64_t x)
|
||||
|
2
deps/luajit/src/lj_dispatch.c
vendored
2
deps/luajit/src/lj_dispatch.c
vendored
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Instruction dispatch handling.
|
||||
** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h
|
||||
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
||||
*/
|
||||
|
||||
#define lj_dispatch_c
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user