Rebuild LuaJIT after 044d5b5.

This commit is contained in:
Miku AuahDark
2023-11-25 21:43:50 +08:00
parent a3b1903250
commit d9ea1f60a5
84 changed files with 2060 additions and 1788 deletions
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT bytecode listing module. -- LuaJIT bytecode listing module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -41,7 +41,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local bit = require("bit") local bit = require("bit")
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT module to save/list bytecode. -- LuaJIT module to save/list bytecode.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -11,7 +11,7 @@
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch") assert(jit.version_num == 20199, "LuaJIT core/library version mismatch")
local bit = require("bit") local bit = require("bit")
-- Symbol name prefix for LuaJIT bytecode. -- Symbol name prefix for LuaJIT bytecode.
@@ -38,7 +38,7 @@ Save LuaJIT bytecode: luajit -b[options] input output
-- Stop handling options. -- Stop handling options.
- Use stdin as input and/or stdout as output. - Use stdin as input and/or stdout as output.
File types: c h obj o raw (default) File types: c cc h obj o raw (default)
]] ]]
os.exit(1) os.exit(1)
end end
@@ -81,7 +81,7 @@ end
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local map_type = { local map_type = {
raw = "raw", c = "c", h = "h", o = "obj", obj = "obj", raw = "raw", c = "c", cc = "c", h = "h", o = "obj", obj = "obj",
} }
local map_arch = { local map_arch = {
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM disassembler module. -- LuaJIT ARM disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This is a helper module used by the LuaJIT machine code dumper module. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM64 disassembler module. -- LuaJIT ARM64 disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
-- --
-- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com. -- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
@@ -107,24 +107,20 @@ local map_logsr = { -- Logical, shifted register.
[0] = { [0] = {
shift = 29, mask = 3, shift = 29, mask = 3,
[0] = { [0] = {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", [0] = "andDNMSg", "bicDNMSg"
"andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] ="orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", [0] = "orr|movDN0MSg", "orn|mvnDN0MSg"
"orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", [0] = "eorDNMSg", "eonDNMSg"
"eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", [0] = "ands|tstD0NMSg", "bicsDNMSg"
"ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg"
} }
}, },
false -- unallocated false -- unallocated
@@ -132,24 +128,20 @@ local map_logsr = { -- Logical, shifted register.
{ {
shift = 29, mask = 3, shift = 29, mask = 3,
[0] = { [0] = {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", [0] = "andDNMSg", "bicDNMSg"
"andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", [0] = "orr|movDN0MSg", "orn|mvnDN0MSg"
"orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", [0] = "eorDNMSg", "eonDNMSg"
"eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", [0] = "ands|tstD0NMSg", "bicsDNMSg"
"ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg"
} }
} }
} }
@@ -735,7 +727,7 @@ local map_cond = {
"hi", "ls", "ge", "lt", "gt", "le", "al", "hi", "ls", "ge", "lt", "gt", "le", "al",
} }
local map_shift = { [0] = "lsl", "lsr", "asr", } local map_shift = { [0] = "lsl", "lsr", "asr", "ror"}
local map_extend = { local map_extend = {
[0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx", [0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx",
@@ -956,7 +948,7 @@ local function disass_ins(ctx)
elseif p == "U" then elseif p == "U" then
local rn = map_regs.x[band(rshift(op, 5), 31)] local rn = map_regs.x[band(rshift(op, 5), 31)]
local sz = band(rshift(op, 30), 3) local sz = band(rshift(op, 30), 3)
local imm12 = lshift(arshift(lshift(op, 10), 20), sz) local imm12 = lshift(rshift(lshift(op, 10), 20), sz)
if imm12 ~= 0 then if imm12 ~= 0 then
x = "["..rn..", #"..imm12.."]" x = "["..rn..", #"..imm12.."]"
else else
@@ -993,8 +985,7 @@ local function disass_ins(ctx)
x = x.."]" x = x.."]"
end end
elseif p == "P" then elseif p == "P" then
local opcv, sh = rshift(op, 26), 2 local sh = 2 + rshift(op, 31 - band(rshift(op, 26), 1))
if opcv >= 0x2a then sh = 4 elseif opcv >= 0x1b then sh = 3 end
local imm7 = lshift(arshift(lshift(op, 10), 25), sh) local imm7 = lshift(arshift(lshift(op, 10), 25), sh)
local rn = map_regs.x[band(rshift(op, 5), 31)] local rn = map_regs.x[band(rshift(op, 5), 31)]
local ind = band(rshift(op, 23), 3) local ind = band(rshift(op, 23), 3)
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM64BE disassembler wrapper module. -- LuaJIT ARM64BE disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- ARM64 instructions are always little-endian. So just forward to the -- ARM64 instructions are always little-endian. So just forward to the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS disassembler module. -- LuaJIT MIPS disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT/X license. See Copyright Notice in luajit.h -- 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. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64 disassembler wrapper module. -- LuaJIT MIPS64 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the big-endian functions from the -- This module just exports the big-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64EL disassembler wrapper module. -- LuaJIT MIPS64EL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the little-endian functions from the -- This module just exports the little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64R6 disassembler wrapper module. -- LuaJIT MIPS64R6 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the r6 big-endian functions from the -- This module just exports the r6 big-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64R6EL disassembler wrapper module. -- LuaJIT MIPS64R6EL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the r6 little-endian functions from the -- This module just exports the r6 little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPSEL disassembler wrapper module. -- LuaJIT MIPSEL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the little-endian functions from the -- This module just exports the little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT PPC disassembler module. -- LuaJIT PPC disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT/X license. See Copyright Notice in luajit.h -- 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. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT x64 disassembler wrapper module. -- LuaJIT x64 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the 64 bit functions from the combined -- This module just exports the 64 bit functions from the combined
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT x86/x64 disassembler module. -- LuaJIT x86/x64 disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This is a helper module used by the LuaJIT machine code dumper module. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT compiler dump module. -- LuaJIT compiler dump module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -55,7 +55,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT profiler. -- LuaJIT profiler.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -41,7 +41,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local profile = require("jit.profile") local profile = require("jit.profile")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local math = math local math = math
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- Verbose mode of the LuaJIT compiler. -- Verbose mode of the LuaJIT compiler.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -59,7 +59,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo
@@ -1,394 +1,396 @@
-- This is a generated file. DO NOT EDIT! -- This is a generated file. DO NOT EDIT!
return { assert(require("jit").version == "LuaJIT 2.1.1700008891", "LuaJIT core/library version mismatch")
bcnames = "ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW", return {
irnames = "LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF TMPREFSTRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ALEN ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ", bcnames = "ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW",
irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "log", "log2", "other", }, irnames = "LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF TMPREFSTRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ALEN ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ",
irfield = { [0]="str.len", "func.env", "func.pc", "func.ffid", "thread.env", "tab.meta", "tab.array", "tab.node", "tab.asize", "tab.hmask", "tab.nomm", "udata.meta", "udata.udtype", "udata.file", "sbuf.w", "sbuf.e", "sbuf.b", "sbuf.l", "sbuf.ref", "sbuf.r", "cdata.ctypeid", "cdata.ptr", "cdata.int", "cdata.int64", "cdata.int64_4", }, irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "log", "log2", "other", },
ircall = { irfield = { [0]="str.len", "func.env", "func.pc", "func.ffid", "thread.env", "tab.meta", "tab.array", "tab.node", "tab.asize", "tab.hmask", "tab.nomm", "udata.meta", "udata.udtype", "udata.file", "sbuf.w", "sbuf.e", "sbuf.b", "sbuf.l", "sbuf.ref", "sbuf.r", "cdata.ctypeid", "cdata.ptr", "cdata.int", "cdata.int64", "cdata.int64_4", },
[0]="lj_str_cmp",
"lj_str_find", ircall = {
"lj_str_new", [0]="lj_str_cmp",
"lj_strscan_num", "lj_str_find",
"lj_strfmt_int", "lj_str_new",
"lj_strfmt_num", "lj_strscan_num",
"lj_strfmt_char", "lj_strfmt_int",
"lj_strfmt_putint", "lj_strfmt_num",
"lj_strfmt_putnum", "lj_strfmt_char",
"lj_strfmt_putquoted", "lj_strfmt_putint",
"lj_strfmt_putfxint", "lj_strfmt_putnum",
"lj_strfmt_putfnum_int", "lj_strfmt_putquoted",
"lj_strfmt_putfnum_uint", "lj_strfmt_putfxint",
"lj_strfmt_putfnum", "lj_strfmt_putfnum_int",
"lj_strfmt_putfstr", "lj_strfmt_putfnum_uint",
"lj_strfmt_putfchar", "lj_strfmt_putfnum",
"lj_buf_putmem", "lj_strfmt_putfstr",
"lj_buf_putstr", "lj_strfmt_putfchar",
"lj_buf_putchar", "lj_buf_putmem",
"lj_buf_putstr_reverse", "lj_buf_putstr",
"lj_buf_putstr_lower", "lj_buf_putchar",
"lj_buf_putstr_upper", "lj_buf_putstr_reverse",
"lj_buf_putstr_rep", "lj_buf_putstr_lower",
"lj_buf_puttab", "lj_buf_putstr_upper",
"lj_bufx_set", "lj_buf_putstr_rep",
"lj_bufx_more", "lj_buf_puttab",
"lj_serialize_put", "lj_bufx_set",
"lj_serialize_get", "lj_bufx_more",
"lj_serialize_encode", "lj_serialize_put",
"lj_serialize_decode", "lj_serialize_get",
"lj_buf_tostr", "lj_serialize_encode",
"lj_tab_new_ah", "lj_serialize_decode",
"lj_tab_new1", "lj_buf_tostr",
"lj_tab_dup", "lj_tab_new_ah",
"lj_tab_clear", "lj_tab_new1",
"lj_tab_newkey", "lj_tab_dup",
"lj_tab_keyindex", "lj_tab_clear",
"lj_vm_next", "lj_tab_newkey",
"lj_tab_len", "lj_tab_keyindex",
"lj_tab_len_hint", "lj_vm_next",
"lj_gc_step_jit", "lj_tab_len",
"lj_gc_barrieruv", "lj_tab_len_hint",
"lj_mem_newgco", "lj_gc_step_jit",
"lj_prng_u64d", "lj_gc_barrieruv",
"lj_vm_modi", "lj_mem_newgco",
"log10", "lj_prng_u64d",
"exp", "lj_vm_modi",
"sin", "log10",
"cos", "exp",
"tan", "sin",
"asin", "cos",
"acos", "tan",
"atan", "asin",
"sinh", "acos",
"cosh", "atan",
"tanh", "sinh",
"fputc", "cosh",
"fwrite", "tanh",
"fflush", "fputc",
"lj_vm_floor", "fwrite",
"lj_vm_ceil", "fflush",
"lj_vm_trunc", "lj_vm_floor",
"sqrt", "lj_vm_ceil",
"log", "lj_vm_trunc",
"lj_vm_log2", "sqrt",
"pow", "log",
"atan2", "lj_vm_log2",
"ldexp", "pow",
"lj_vm_tobit", "atan2",
"softfp_add", "ldexp",
"softfp_sub", "lj_vm_tobit",
"softfp_mul", "softfp_add",
"softfp_div", "softfp_sub",
"softfp_cmp", "softfp_mul",
"softfp_i2d", "softfp_div",
"softfp_d2i", "softfp_cmp",
"lj_vm_sfmin", "softfp_i2d",
"lj_vm_sfmax", "softfp_d2i",
"lj_vm_tointg", "lj_vm_sfmin",
"softfp_ui2d", "lj_vm_sfmax",
"softfp_f2d", "lj_vm_tointg",
"softfp_d2ui", "softfp_ui2d",
"softfp_d2f", "softfp_f2d",
"softfp_i2f", "softfp_d2ui",
"softfp_ui2f", "softfp_d2f",
"softfp_f2i", "softfp_i2f",
"softfp_f2ui", "softfp_ui2f",
"fp64_l2d", "softfp_f2i",
"fp64_ul2d", "softfp_f2ui",
"fp64_l2f", "fp64_l2d",
"fp64_ul2f", "fp64_ul2d",
"fp64_d2l", "fp64_l2f",
"fp64_d2ul", "fp64_ul2f",
"fp64_f2l", "fp64_d2l",
"fp64_f2ul", "fp64_d2ul",
"lj_carith_divi64", "fp64_f2l",
"lj_carith_divu64", "fp64_f2ul",
"lj_carith_modi64", "lj_carith_divi64",
"lj_carith_modu64", "lj_carith_divu64",
"lj_carith_powi64", "lj_carith_modi64",
"lj_carith_powu64", "lj_carith_modu64",
"lj_cdata_newv", "lj_carith_powi64",
"lj_cdata_setfin", "lj_carith_powu64",
"strlen", "lj_cdata_newv",
"memcpy", "lj_cdata_setfin",
"memset", "strlen",
"lj_vm_errno", "memcpy",
"lj_carith_mul64", "memset",
"lj_carith_shl64", "lj_vm_errno",
"lj_carith_shr64", "lj_carith_mul64",
"lj_carith_sar64", "lj_carith_shl64",
"lj_carith_rol64", "lj_carith_shr64",
"lj_carith_ror64", "lj_carith_sar64",
}, "lj_carith_rol64",
"lj_carith_ror64",
traceerr = { },
[0]="error thrown or hook called during recording",
"trace too short", traceerr = {
"trace too long", [0]="error thrown or hook called during recording",
"trace too deep", "trace too short",
"too many snapshots", "trace too long",
"blacklisted", "trace too deep",
"retry recording", "too many snapshots",
"NYI: bytecode %d", "blacklisted",
"leaving loop in root trace", "retry recording",
"inner loop in root trace", "NYI: bytecode %d",
"loop unroll limit reached", "leaving loop in root trace",
"bad argument type", "inner loop in root trace",
"JIT compilation disabled for function", "loop unroll limit reached",
"call unroll limit reached", "bad argument type",
"down-recursion, restarting", "JIT compilation disabled for function",
"NYI: unsupported variant of FastFunc %s", "call unroll limit reached",
"NYI: return to lower frame", "down-recursion, restarting",
"store with nil or NaN key", "NYI: unsupported variant of FastFunc %s",
"missing metamethod", "NYI: return to lower frame",
"looping index lookup", "store with nil or NaN key",
"NYI: mixed sparse/dense table", "missing metamethod",
"symbol not in cache", "looping index lookup",
"NYI: unsupported C type conversion", "NYI: mixed sparse/dense table",
"NYI: unsupported C function type", "symbol not in cache",
"guard would always fail", "NYI: unsupported C type conversion",
"too many PHIs", "NYI: unsupported C function type",
"persistent type instability", "guard would always fail",
"failed to allocate mcode memory", "too many PHIs",
"machine code too long", "persistent type instability",
"hit mcode limit (retrying)", "failed to allocate mcode memory",
"too many spill slots", "machine code too long",
"inconsistent register allocation", "hit mcode limit (retrying)",
"NYI: cannot assemble IR instruction %d", "too many spill slots",
"NYI: PHI shuffling too complex", "inconsistent register allocation",
"NYI: register coalescing too complex", "NYI: cannot assemble IR instruction %d",
}, "NYI: PHI shuffling too complex",
"NYI: register coalescing too complex",
ffnames = { },
[0]="Lua",
"C", ffnames = {
"assert", [0]="Lua",
"type", "C",
"next", "assert",
"pairs", "type",
"ipairs_aux", "next",
"ipairs", "pairs",
"getmetatable", "ipairs_aux",
"setmetatable", "ipairs",
"getfenv", "getmetatable",
"setfenv", "setmetatable",
"rawget", "getfenv",
"rawset", "setfenv",
"rawequal", "rawget",
"unpack", "rawset",
"select", "rawequal",
"tonumber", "unpack",
"tostring", "select",
"error", "tonumber",
"pcall", "tostring",
"xpcall", "error",
"loadfile", "pcall",
"load", "xpcall",
"loadstring", "loadfile",
"dofile", "load",
"gcinfo", "loadstring",
"collectgarbage", "dofile",
"newproxy", "gcinfo",
"print", "collectgarbage",
"coroutine.status", "newproxy",
"coroutine.running", "print",
"coroutine.isyieldable", "coroutine.status",
"coroutine.create", "coroutine.running",
"coroutine.yield", "coroutine.isyieldable",
"coroutine.resume", "coroutine.create",
"coroutine.wrap_aux", "coroutine.yield",
"coroutine.wrap", "coroutine.resume",
"math.abs", "coroutine.wrap_aux",
"math.floor", "coroutine.wrap",
"math.ceil", "math.abs",
"math.sqrt", "math.floor",
"math.log10", "math.ceil",
"math.exp", "math.sqrt",
"math.sin", "math.log10",
"math.cos", "math.exp",
"math.tan", "math.sin",
"math.asin", "math.cos",
"math.acos", "math.tan",
"math.atan", "math.asin",
"math.sinh", "math.acos",
"math.cosh", "math.atan",
"math.tanh", "math.sinh",
"math.frexp", "math.cosh",
"math.modf", "math.tanh",
"math.log", "math.frexp",
"math.atan2", "math.modf",
"math.pow", "math.log",
"math.fmod", "math.atan2",
"math.ldexp", "math.pow",
"math.min", "math.fmod",
"math.max", "math.ldexp",
"math.random", "math.min",
"math.randomseed", "math.max",
"bit.tobit", "math.random",
"bit.bnot", "math.randomseed",
"bit.bswap", "bit.tobit",
"bit.lshift", "bit.bnot",
"bit.rshift", "bit.bswap",
"bit.arshift", "bit.lshift",
"bit.rol", "bit.rshift",
"bit.ror", "bit.arshift",
"bit.band", "bit.rol",
"bit.bor", "bit.ror",
"bit.bxor", "bit.band",
"bit.tohex", "bit.bor",
"string.byte", "bit.bxor",
"string.char", "bit.tohex",
"string.sub", "string.byte",
"string.rep", "string.char",
"string.reverse", "string.sub",
"string.lower", "string.rep",
"string.upper", "string.reverse",
"string.dump", "string.lower",
"string.find", "string.upper",
"string.match", "string.dump",
"string.gmatch_aux", "string.find",
"string.gmatch", "string.match",
"string.gsub", "string.gmatch_aux",
"string.format", "string.gmatch",
"table.maxn", "string.gsub",
"table.insert", "string.format",
"table.concat", "table.maxn",
"table.sort", "table.insert",
"table.new", "table.concat",
"table.clear", "table.sort",
"io.method.close", "table.new",
"io.method.read", "table.clear",
"io.method.write", "io.method.close",
"io.method.flush", "io.method.read",
"io.method.seek", "io.method.write",
"io.method.setvbuf", "io.method.flush",
"io.method.lines", "io.method.seek",
"io.method.__gc", "io.method.setvbuf",
"io.method.__tostring", "io.method.lines",
"io.open", "io.method.__gc",
"io.popen", "io.method.__tostring",
"io.tmpfile", "io.open",
"io.close", "io.popen",
"io.read", "io.tmpfile",
"io.write", "io.close",
"io.flush", "io.read",
"io.input", "io.write",
"io.output", "io.flush",
"io.lines", "io.input",
"io.type", "io.output",
"os.execute", "io.lines",
"os.remove", "io.type",
"os.rename", "os.execute",
"os.tmpname", "os.remove",
"os.getenv", "os.rename",
"os.exit", "os.tmpname",
"os.clock", "os.getenv",
"os.date", "os.exit",
"os.time", "os.clock",
"os.difftime", "os.date",
"os.setlocale", "os.time",
"debug.getregistry", "os.difftime",
"debug.getmetatable", "os.setlocale",
"debug.setmetatable", "debug.getregistry",
"debug.getfenv", "debug.getmetatable",
"debug.setfenv", "debug.setmetatable",
"debug.getinfo", "debug.getfenv",
"debug.getlocal", "debug.setfenv",
"debug.setlocal", "debug.getinfo",
"debug.getupvalue", "debug.getlocal",
"debug.setupvalue", "debug.setlocal",
"debug.upvalueid", "debug.getupvalue",
"debug.upvaluejoin", "debug.setupvalue",
"debug.sethook", "debug.upvalueid",
"debug.gethook", "debug.upvaluejoin",
"debug.debug", "debug.sethook",
"debug.traceback", "debug.gethook",
"jit.on", "debug.debug",
"jit.off", "debug.traceback",
"jit.flush", "jit.on",
"jit.status", "jit.off",
"jit.security", "jit.flush",
"jit.attach", "jit.status",
"jit.util.funcinfo", "jit.security",
"jit.util.funcbc", "jit.attach",
"jit.util.funck", "jit.util.funcinfo",
"jit.util.funcuvname", "jit.util.funcbc",
"jit.util.traceinfo", "jit.util.funck",
"jit.util.traceir", "jit.util.funcuvname",
"jit.util.tracek", "jit.util.traceinfo",
"jit.util.tracesnap", "jit.util.traceir",
"jit.util.tracemc", "jit.util.tracek",
"jit.util.traceexitstub", "jit.util.tracesnap",
"jit.util.ircalladdr", "jit.util.tracemc",
"jit.opt.start", "jit.util.traceexitstub",
"jit.profile.start", "jit.util.ircalladdr",
"jit.profile.stop", "jit.opt.start",
"jit.profile.dumpstack", "jit.profile.start",
"ffi.meta.__index", "jit.profile.stop",
"ffi.meta.__newindex", "jit.profile.dumpstack",
"ffi.meta.__eq", "ffi.meta.__index",
"ffi.meta.__len", "ffi.meta.__newindex",
"ffi.meta.__lt", "ffi.meta.__eq",
"ffi.meta.__le", "ffi.meta.__len",
"ffi.meta.__concat", "ffi.meta.__lt",
"ffi.meta.__call", "ffi.meta.__le",
"ffi.meta.__add", "ffi.meta.__concat",
"ffi.meta.__sub", "ffi.meta.__call",
"ffi.meta.__mul", "ffi.meta.__add",
"ffi.meta.__div", "ffi.meta.__sub",
"ffi.meta.__mod", "ffi.meta.__mul",
"ffi.meta.__pow", "ffi.meta.__div",
"ffi.meta.__unm", "ffi.meta.__mod",
"ffi.meta.__tostring", "ffi.meta.__pow",
"ffi.meta.__pairs", "ffi.meta.__unm",
"ffi.meta.__ipairs", "ffi.meta.__tostring",
"ffi.clib.__index", "ffi.meta.__pairs",
"ffi.clib.__newindex", "ffi.meta.__ipairs",
"ffi.clib.__gc", "ffi.clib.__index",
"ffi.callback.free", "ffi.clib.__newindex",
"ffi.callback.set", "ffi.clib.__gc",
"ffi.cdef", "ffi.callback.free",
"ffi.new", "ffi.callback.set",
"ffi.cast", "ffi.cdef",
"ffi.typeof", "ffi.new",
"ffi.typeinfo", "ffi.cast",
"ffi.istype", "ffi.typeof",
"ffi.sizeof", "ffi.typeinfo",
"ffi.alignof", "ffi.istype",
"ffi.offsetof", "ffi.sizeof",
"ffi.errno", "ffi.alignof",
"ffi.string", "ffi.offsetof",
"ffi.copy", "ffi.errno",
"ffi.fill", "ffi.string",
"ffi.abi", "ffi.copy",
"ffi.metatype", "ffi.fill",
"ffi.gc", "ffi.abi",
"ffi.load", "ffi.metatype",
"buffer.method.free", "ffi.gc",
"buffer.method.reset", "ffi.load",
"buffer.method.skip", "buffer.method.free",
"buffer.method.set", "buffer.method.reset",
"buffer.method.put", "buffer.method.skip",
"buffer.method.putf", "buffer.method.set",
"buffer.method.get", "buffer.method.put",
"buffer.method.putcdata", "buffer.method.putf",
"buffer.method.reserve", "buffer.method.get",
"buffer.method.commit", "buffer.method.putcdata",
"buffer.method.ref", "buffer.method.reserve",
"buffer.method.encode", "buffer.method.commit",
"buffer.method.decode", "buffer.method.ref",
"buffer.method.__gc", "buffer.method.encode",
"buffer.method.__tostring", "buffer.method.decode",
"buffer.method.__len", "buffer.method.__gc",
"buffer.new", "buffer.method.__tostring",
"buffer.encode", "buffer.method.__len",
"buffer.decode", "buffer.new",
}, "buffer.encode",
"buffer.decode",
} },
}
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT profiler zones. -- LuaJIT profiler zones.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -0,0 +1,79 @@
/*
** LuaJIT -- a Just-In-Time Compiler for Lua. https://luajit.org/
**
** Copyright (C) 2005-2023 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 in the Software without restriction, including
** without limitation the rights to use, copy, modify, merge, publish,
** distribute, sublicense, and/or sell copies of the Software, and to
** permit persons to whom the Software is furnished to do so, subject to
** the following conditions:
**
** The above copyright notice and this permission notice shall be
** included in all copies or substantial portions of the Software.
**
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**
** [ MIT license: https://www.opensource.org/licenses/mit-license.php ]
*/
#ifndef _LUAJIT_H
#define _LUAJIT_H
#include "lua.h"
#define LUAJIT_VERSION "LuaJIT 2.1.1700008891"
#define LUAJIT_VERSION_NUM 20199 /* Deprecated. */
#define LUAJIT_VERSION_SYM luaJIT_version_2_1_1700008891
#define LUAJIT_COPYRIGHT "Copyright (C) 2005-2023 Mike Pall"
#define LUAJIT_URL "https://luajit.org/"
/* Modes for luaJIT_setmode. */
#define LUAJIT_MODE_MASK 0x00ff
enum {
LUAJIT_MODE_ENGINE, /* Set mode for whole JIT engine. */
LUAJIT_MODE_DEBUG, /* Set debug mode (idx = level). */
LUAJIT_MODE_FUNC, /* Change mode for a function. */
LUAJIT_MODE_ALLFUNC, /* Recurse into subroutine protos. */
LUAJIT_MODE_ALLSUBFUNC, /* Change only the subroutines. */
LUAJIT_MODE_TRACE, /* Flush a compiled trace. */
LUAJIT_MODE_WRAPCFUNC = 0x10, /* Set wrapper mode for C function calls. */
LUAJIT_MODE_MAX
};
/* Flags or'ed in to the mode. */
#define LUAJIT_MODE_OFF 0x0000 /* Turn feature off. */
#define LUAJIT_MODE_ON 0x0100 /* Turn feature on. */
#define LUAJIT_MODE_FLUSH 0x0200 /* Flush JIT-compiled code. */
/* LuaJIT public C API. */
/* Control the JIT engine. */
LUA_API int luaJIT_setmode(lua_State *L, int idx, int mode);
/* Low-overhead profiling API. */
typedef void (*luaJIT_profile_callback)(void *data, lua_State *L,
int samples, int vmstate);
LUA_API void luaJIT_profile_start(lua_State *L, const char *mode,
luaJIT_profile_callback cb, void *data);
LUA_API void luaJIT_profile_stop(lua_State *L);
LUA_API const char *luaJIT_profile_dumpstack(lua_State *L, const char *fmt,
int depth, size_t *len);
/* Enforce (dynamic) linker error for version mismatches. Call from main. */
LUA_API void LUAJIT_VERSION_SYM(void);
#endif
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT bytecode listing module. -- LuaJIT bytecode listing module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -41,7 +41,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local bit = require("bit") local bit = require("bit")
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT module to save/list bytecode. -- LuaJIT module to save/list bytecode.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -11,7 +11,7 @@
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch") assert(jit.version_num == 20199, "LuaJIT core/library version mismatch")
local bit = require("bit") local bit = require("bit")
-- Symbol name prefix for LuaJIT bytecode. -- Symbol name prefix for LuaJIT bytecode.
@@ -38,7 +38,7 @@ Save LuaJIT bytecode: luajit -b[options] input output
-- Stop handling options. -- Stop handling options.
- Use stdin as input and/or stdout as output. - Use stdin as input and/or stdout as output.
File types: c h obj o raw (default) File types: c cc h obj o raw (default)
]] ]]
os.exit(1) os.exit(1)
end end
@@ -81,7 +81,7 @@ end
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local map_type = { local map_type = {
raw = "raw", c = "c", h = "h", o = "obj", obj = "obj", raw = "raw", c = "c", cc = "c", h = "h", o = "obj", obj = "obj",
} }
local map_arch = { local map_arch = {
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM disassembler module. -- LuaJIT ARM disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This is a helper module used by the LuaJIT machine code dumper module. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM64 disassembler module. -- LuaJIT ARM64 disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
-- --
-- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com. -- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
@@ -107,24 +107,20 @@ local map_logsr = { -- Logical, shifted register.
[0] = { [0] = {
shift = 29, mask = 3, shift = 29, mask = 3,
[0] = { [0] = {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", [0] = "andDNMSg", "bicDNMSg"
"andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] ="orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", [0] = "orr|movDN0MSg", "orn|mvnDN0MSg"
"orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", [0] = "eorDNMSg", "eonDNMSg"
"eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", [0] = "ands|tstD0NMSg", "bicsDNMSg"
"ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg"
} }
}, },
false -- unallocated false -- unallocated
@@ -132,24 +128,20 @@ local map_logsr = { -- Logical, shifted register.
{ {
shift = 29, mask = 3, shift = 29, mask = 3,
[0] = { [0] = {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", [0] = "andDNMSg", "bicDNMSg"
"andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", [0] = "orr|movDN0MSg", "orn|mvnDN0MSg"
"orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", [0] = "eorDNMSg", "eonDNMSg"
"eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", [0] = "ands|tstD0NMSg", "bicsDNMSg"
"ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg"
} }
} }
} }
@@ -735,7 +727,7 @@ local map_cond = {
"hi", "ls", "ge", "lt", "gt", "le", "al", "hi", "ls", "ge", "lt", "gt", "le", "al",
} }
local map_shift = { [0] = "lsl", "lsr", "asr", } local map_shift = { [0] = "lsl", "lsr", "asr", "ror"}
local map_extend = { local map_extend = {
[0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx", [0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx",
@@ -956,7 +948,7 @@ local function disass_ins(ctx)
elseif p == "U" then elseif p == "U" then
local rn = map_regs.x[band(rshift(op, 5), 31)] local rn = map_regs.x[band(rshift(op, 5), 31)]
local sz = band(rshift(op, 30), 3) local sz = band(rshift(op, 30), 3)
local imm12 = lshift(arshift(lshift(op, 10), 20), sz) local imm12 = lshift(rshift(lshift(op, 10), 20), sz)
if imm12 ~= 0 then if imm12 ~= 0 then
x = "["..rn..", #"..imm12.."]" x = "["..rn..", #"..imm12.."]"
else else
@@ -993,8 +985,7 @@ local function disass_ins(ctx)
x = x.."]" x = x.."]"
end end
elseif p == "P" then elseif p == "P" then
local opcv, sh = rshift(op, 26), 2 local sh = 2 + rshift(op, 31 - band(rshift(op, 26), 1))
if opcv >= 0x2a then sh = 4 elseif opcv >= 0x1b then sh = 3 end
local imm7 = lshift(arshift(lshift(op, 10), 25), sh) local imm7 = lshift(arshift(lshift(op, 10), 25), sh)
local rn = map_regs.x[band(rshift(op, 5), 31)] local rn = map_regs.x[band(rshift(op, 5), 31)]
local ind = band(rshift(op, 23), 3) local ind = band(rshift(op, 23), 3)
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM64BE disassembler wrapper module. -- LuaJIT ARM64BE disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- ARM64 instructions are always little-endian. So just forward to the -- ARM64 instructions are always little-endian. So just forward to the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS disassembler module. -- LuaJIT MIPS disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT/X license. See Copyright Notice in luajit.h -- 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. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64 disassembler wrapper module. -- LuaJIT MIPS64 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the big-endian functions from the -- This module just exports the big-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64EL disassembler wrapper module. -- LuaJIT MIPS64EL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the little-endian functions from the -- This module just exports the little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64R6 disassembler wrapper module. -- LuaJIT MIPS64R6 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the r6 big-endian functions from the -- This module just exports the r6 big-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64R6EL disassembler wrapper module. -- LuaJIT MIPS64R6EL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the r6 little-endian functions from the -- This module just exports the r6 little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPSEL disassembler wrapper module. -- LuaJIT MIPSEL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the little-endian functions from the -- This module just exports the little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT PPC disassembler module. -- LuaJIT PPC disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT/X license. See Copyright Notice in luajit.h -- 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. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT x64 disassembler wrapper module. -- LuaJIT x64 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the 64 bit functions from the combined -- This module just exports the 64 bit functions from the combined
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT x86/x64 disassembler module. -- LuaJIT x86/x64 disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This is a helper module used by the LuaJIT machine code dumper module. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT compiler dump module. -- LuaJIT compiler dump module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -55,7 +55,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT profiler. -- LuaJIT profiler.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -41,7 +41,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local profile = require("jit.profile") local profile = require("jit.profile")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local math = math local math = math
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- Verbose mode of the LuaJIT compiler. -- Verbose mode of the LuaJIT compiler.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -59,7 +59,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo
@@ -1,394 +1,396 @@
-- This is a generated file. DO NOT EDIT! -- This is a generated file. DO NOT EDIT!
return { assert(require("jit").version == "LuaJIT 2.1.1700008891", "LuaJIT core/library version mismatch")
bcnames = "ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW", return {
irnames = "LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF TMPREFSTRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ALEN ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ", bcnames = "ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW",
irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "log", "log2", "other", }, irnames = "LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF TMPREFSTRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ALEN ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ",
irfield = { [0]="str.len", "func.env", "func.pc", "func.ffid", "thread.env", "tab.meta", "tab.array", "tab.node", "tab.asize", "tab.hmask", "tab.nomm", "udata.meta", "udata.udtype", "udata.file", "sbuf.w", "sbuf.e", "sbuf.b", "sbuf.l", "sbuf.ref", "sbuf.r", "cdata.ctypeid", "cdata.ptr", "cdata.int", "cdata.int64", "cdata.int64_4", }, irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "log", "log2", "other", },
ircall = { irfield = { [0]="str.len", "func.env", "func.pc", "func.ffid", "thread.env", "tab.meta", "tab.array", "tab.node", "tab.asize", "tab.hmask", "tab.nomm", "udata.meta", "udata.udtype", "udata.file", "sbuf.w", "sbuf.e", "sbuf.b", "sbuf.l", "sbuf.ref", "sbuf.r", "cdata.ctypeid", "cdata.ptr", "cdata.int", "cdata.int64", "cdata.int64_4", },
[0]="lj_str_cmp",
"lj_str_find", ircall = {
"lj_str_new", [0]="lj_str_cmp",
"lj_strscan_num", "lj_str_find",
"lj_strfmt_int", "lj_str_new",
"lj_strfmt_num", "lj_strscan_num",
"lj_strfmt_char", "lj_strfmt_int",
"lj_strfmt_putint", "lj_strfmt_num",
"lj_strfmt_putnum", "lj_strfmt_char",
"lj_strfmt_putquoted", "lj_strfmt_putint",
"lj_strfmt_putfxint", "lj_strfmt_putnum",
"lj_strfmt_putfnum_int", "lj_strfmt_putquoted",
"lj_strfmt_putfnum_uint", "lj_strfmt_putfxint",
"lj_strfmt_putfnum", "lj_strfmt_putfnum_int",
"lj_strfmt_putfstr", "lj_strfmt_putfnum_uint",
"lj_strfmt_putfchar", "lj_strfmt_putfnum",
"lj_buf_putmem", "lj_strfmt_putfstr",
"lj_buf_putstr", "lj_strfmt_putfchar",
"lj_buf_putchar", "lj_buf_putmem",
"lj_buf_putstr_reverse", "lj_buf_putstr",
"lj_buf_putstr_lower", "lj_buf_putchar",
"lj_buf_putstr_upper", "lj_buf_putstr_reverse",
"lj_buf_putstr_rep", "lj_buf_putstr_lower",
"lj_buf_puttab", "lj_buf_putstr_upper",
"lj_bufx_set", "lj_buf_putstr_rep",
"lj_bufx_more", "lj_buf_puttab",
"lj_serialize_put", "lj_bufx_set",
"lj_serialize_get", "lj_bufx_more",
"lj_serialize_encode", "lj_serialize_put",
"lj_serialize_decode", "lj_serialize_get",
"lj_buf_tostr", "lj_serialize_encode",
"lj_tab_new_ah", "lj_serialize_decode",
"lj_tab_new1", "lj_buf_tostr",
"lj_tab_dup", "lj_tab_new_ah",
"lj_tab_clear", "lj_tab_new1",
"lj_tab_newkey", "lj_tab_dup",
"lj_tab_keyindex", "lj_tab_clear",
"lj_vm_next", "lj_tab_newkey",
"lj_tab_len", "lj_tab_keyindex",
"lj_tab_len_hint", "lj_vm_next",
"lj_gc_step_jit", "lj_tab_len",
"lj_gc_barrieruv", "lj_tab_len_hint",
"lj_mem_newgco", "lj_gc_step_jit",
"lj_prng_u64d", "lj_gc_barrieruv",
"lj_vm_modi", "lj_mem_newgco",
"log10", "lj_prng_u64d",
"exp", "lj_vm_modi",
"sin", "log10",
"cos", "exp",
"tan", "sin",
"asin", "cos",
"acos", "tan",
"atan", "asin",
"sinh", "acos",
"cosh", "atan",
"tanh", "sinh",
"fputc", "cosh",
"fwrite", "tanh",
"fflush", "fputc",
"lj_vm_floor", "fwrite",
"lj_vm_ceil", "fflush",
"lj_vm_trunc", "lj_vm_floor",
"sqrt", "lj_vm_ceil",
"log", "lj_vm_trunc",
"lj_vm_log2", "sqrt",
"pow", "log",
"atan2", "lj_vm_log2",
"ldexp", "pow",
"lj_vm_tobit", "atan2",
"softfp_add", "ldexp",
"softfp_sub", "lj_vm_tobit",
"softfp_mul", "softfp_add",
"softfp_div", "softfp_sub",
"softfp_cmp", "softfp_mul",
"softfp_i2d", "softfp_div",
"softfp_d2i", "softfp_cmp",
"lj_vm_sfmin", "softfp_i2d",
"lj_vm_sfmax", "softfp_d2i",
"lj_vm_tointg", "lj_vm_sfmin",
"softfp_ui2d", "lj_vm_sfmax",
"softfp_f2d", "lj_vm_tointg",
"softfp_d2ui", "softfp_ui2d",
"softfp_d2f", "softfp_f2d",
"softfp_i2f", "softfp_d2ui",
"softfp_ui2f", "softfp_d2f",
"softfp_f2i", "softfp_i2f",
"softfp_f2ui", "softfp_ui2f",
"fp64_l2d", "softfp_f2i",
"fp64_ul2d", "softfp_f2ui",
"fp64_l2f", "fp64_l2d",
"fp64_ul2f", "fp64_ul2d",
"fp64_d2l", "fp64_l2f",
"fp64_d2ul", "fp64_ul2f",
"fp64_f2l", "fp64_d2l",
"fp64_f2ul", "fp64_d2ul",
"lj_carith_divi64", "fp64_f2l",
"lj_carith_divu64", "fp64_f2ul",
"lj_carith_modi64", "lj_carith_divi64",
"lj_carith_modu64", "lj_carith_divu64",
"lj_carith_powi64", "lj_carith_modi64",
"lj_carith_powu64", "lj_carith_modu64",
"lj_cdata_newv", "lj_carith_powi64",
"lj_cdata_setfin", "lj_carith_powu64",
"strlen", "lj_cdata_newv",
"memcpy", "lj_cdata_setfin",
"memset", "strlen",
"lj_vm_errno", "memcpy",
"lj_carith_mul64", "memset",
"lj_carith_shl64", "lj_vm_errno",
"lj_carith_shr64", "lj_carith_mul64",
"lj_carith_sar64", "lj_carith_shl64",
"lj_carith_rol64", "lj_carith_shr64",
"lj_carith_ror64", "lj_carith_sar64",
}, "lj_carith_rol64",
"lj_carith_ror64",
traceerr = { },
[0]="error thrown or hook called during recording",
"trace too short", traceerr = {
"trace too long", [0]="error thrown or hook called during recording",
"trace too deep", "trace too short",
"too many snapshots", "trace too long",
"blacklisted", "trace too deep",
"retry recording", "too many snapshots",
"NYI: bytecode %d", "blacklisted",
"leaving loop in root trace", "retry recording",
"inner loop in root trace", "NYI: bytecode %d",
"loop unroll limit reached", "leaving loop in root trace",
"bad argument type", "inner loop in root trace",
"JIT compilation disabled for function", "loop unroll limit reached",
"call unroll limit reached", "bad argument type",
"down-recursion, restarting", "JIT compilation disabled for function",
"NYI: unsupported variant of FastFunc %s", "call unroll limit reached",
"NYI: return to lower frame", "down-recursion, restarting",
"store with nil or NaN key", "NYI: unsupported variant of FastFunc %s",
"missing metamethod", "NYI: return to lower frame",
"looping index lookup", "store with nil or NaN key",
"NYI: mixed sparse/dense table", "missing metamethod",
"symbol not in cache", "looping index lookup",
"NYI: unsupported C type conversion", "NYI: mixed sparse/dense table",
"NYI: unsupported C function type", "symbol not in cache",
"guard would always fail", "NYI: unsupported C type conversion",
"too many PHIs", "NYI: unsupported C function type",
"persistent type instability", "guard would always fail",
"failed to allocate mcode memory", "too many PHIs",
"machine code too long", "persistent type instability",
"hit mcode limit (retrying)", "failed to allocate mcode memory",
"too many spill slots", "machine code too long",
"inconsistent register allocation", "hit mcode limit (retrying)",
"NYI: cannot assemble IR instruction %d", "too many spill slots",
"NYI: PHI shuffling too complex", "inconsistent register allocation",
"NYI: register coalescing too complex", "NYI: cannot assemble IR instruction %d",
}, "NYI: PHI shuffling too complex",
"NYI: register coalescing too complex",
ffnames = { },
[0]="Lua",
"C", ffnames = {
"assert", [0]="Lua",
"type", "C",
"next", "assert",
"pairs", "type",
"ipairs_aux", "next",
"ipairs", "pairs",
"getmetatable", "ipairs_aux",
"setmetatable", "ipairs",
"getfenv", "getmetatable",
"setfenv", "setmetatable",
"rawget", "getfenv",
"rawset", "setfenv",
"rawequal", "rawget",
"unpack", "rawset",
"select", "rawequal",
"tonumber", "unpack",
"tostring", "select",
"error", "tonumber",
"pcall", "tostring",
"xpcall", "error",
"loadfile", "pcall",
"load", "xpcall",
"loadstring", "loadfile",
"dofile", "load",
"gcinfo", "loadstring",
"collectgarbage", "dofile",
"newproxy", "gcinfo",
"print", "collectgarbage",
"coroutine.status", "newproxy",
"coroutine.running", "print",
"coroutine.isyieldable", "coroutine.status",
"coroutine.create", "coroutine.running",
"coroutine.yield", "coroutine.isyieldable",
"coroutine.resume", "coroutine.create",
"coroutine.wrap_aux", "coroutine.yield",
"coroutine.wrap", "coroutine.resume",
"math.abs", "coroutine.wrap_aux",
"math.floor", "coroutine.wrap",
"math.ceil", "math.abs",
"math.sqrt", "math.floor",
"math.log10", "math.ceil",
"math.exp", "math.sqrt",
"math.sin", "math.log10",
"math.cos", "math.exp",
"math.tan", "math.sin",
"math.asin", "math.cos",
"math.acos", "math.tan",
"math.atan", "math.asin",
"math.sinh", "math.acos",
"math.cosh", "math.atan",
"math.tanh", "math.sinh",
"math.frexp", "math.cosh",
"math.modf", "math.tanh",
"math.log", "math.frexp",
"math.atan2", "math.modf",
"math.pow", "math.log",
"math.fmod", "math.atan2",
"math.ldexp", "math.pow",
"math.min", "math.fmod",
"math.max", "math.ldexp",
"math.random", "math.min",
"math.randomseed", "math.max",
"bit.tobit", "math.random",
"bit.bnot", "math.randomseed",
"bit.bswap", "bit.tobit",
"bit.lshift", "bit.bnot",
"bit.rshift", "bit.bswap",
"bit.arshift", "bit.lshift",
"bit.rol", "bit.rshift",
"bit.ror", "bit.arshift",
"bit.band", "bit.rol",
"bit.bor", "bit.ror",
"bit.bxor", "bit.band",
"bit.tohex", "bit.bor",
"string.byte", "bit.bxor",
"string.char", "bit.tohex",
"string.sub", "string.byte",
"string.rep", "string.char",
"string.reverse", "string.sub",
"string.lower", "string.rep",
"string.upper", "string.reverse",
"string.dump", "string.lower",
"string.find", "string.upper",
"string.match", "string.dump",
"string.gmatch_aux", "string.find",
"string.gmatch", "string.match",
"string.gsub", "string.gmatch_aux",
"string.format", "string.gmatch",
"table.maxn", "string.gsub",
"table.insert", "string.format",
"table.concat", "table.maxn",
"table.sort", "table.insert",
"table.new", "table.concat",
"table.clear", "table.sort",
"io.method.close", "table.new",
"io.method.read", "table.clear",
"io.method.write", "io.method.close",
"io.method.flush", "io.method.read",
"io.method.seek", "io.method.write",
"io.method.setvbuf", "io.method.flush",
"io.method.lines", "io.method.seek",
"io.method.__gc", "io.method.setvbuf",
"io.method.__tostring", "io.method.lines",
"io.open", "io.method.__gc",
"io.popen", "io.method.__tostring",
"io.tmpfile", "io.open",
"io.close", "io.popen",
"io.read", "io.tmpfile",
"io.write", "io.close",
"io.flush", "io.read",
"io.input", "io.write",
"io.output", "io.flush",
"io.lines", "io.input",
"io.type", "io.output",
"os.execute", "io.lines",
"os.remove", "io.type",
"os.rename", "os.execute",
"os.tmpname", "os.remove",
"os.getenv", "os.rename",
"os.exit", "os.tmpname",
"os.clock", "os.getenv",
"os.date", "os.exit",
"os.time", "os.clock",
"os.difftime", "os.date",
"os.setlocale", "os.time",
"debug.getregistry", "os.difftime",
"debug.getmetatable", "os.setlocale",
"debug.setmetatable", "debug.getregistry",
"debug.getfenv", "debug.getmetatable",
"debug.setfenv", "debug.setmetatable",
"debug.getinfo", "debug.getfenv",
"debug.getlocal", "debug.setfenv",
"debug.setlocal", "debug.getinfo",
"debug.getupvalue", "debug.getlocal",
"debug.setupvalue", "debug.setlocal",
"debug.upvalueid", "debug.getupvalue",
"debug.upvaluejoin", "debug.setupvalue",
"debug.sethook", "debug.upvalueid",
"debug.gethook", "debug.upvaluejoin",
"debug.debug", "debug.sethook",
"debug.traceback", "debug.gethook",
"jit.on", "debug.debug",
"jit.off", "debug.traceback",
"jit.flush", "jit.on",
"jit.status", "jit.off",
"jit.security", "jit.flush",
"jit.attach", "jit.status",
"jit.util.funcinfo", "jit.security",
"jit.util.funcbc", "jit.attach",
"jit.util.funck", "jit.util.funcinfo",
"jit.util.funcuvname", "jit.util.funcbc",
"jit.util.traceinfo", "jit.util.funck",
"jit.util.traceir", "jit.util.funcuvname",
"jit.util.tracek", "jit.util.traceinfo",
"jit.util.tracesnap", "jit.util.traceir",
"jit.util.tracemc", "jit.util.tracek",
"jit.util.traceexitstub", "jit.util.tracesnap",
"jit.util.ircalladdr", "jit.util.tracemc",
"jit.opt.start", "jit.util.traceexitstub",
"jit.profile.start", "jit.util.ircalladdr",
"jit.profile.stop", "jit.opt.start",
"jit.profile.dumpstack", "jit.profile.start",
"ffi.meta.__index", "jit.profile.stop",
"ffi.meta.__newindex", "jit.profile.dumpstack",
"ffi.meta.__eq", "ffi.meta.__index",
"ffi.meta.__len", "ffi.meta.__newindex",
"ffi.meta.__lt", "ffi.meta.__eq",
"ffi.meta.__le", "ffi.meta.__len",
"ffi.meta.__concat", "ffi.meta.__lt",
"ffi.meta.__call", "ffi.meta.__le",
"ffi.meta.__add", "ffi.meta.__concat",
"ffi.meta.__sub", "ffi.meta.__call",
"ffi.meta.__mul", "ffi.meta.__add",
"ffi.meta.__div", "ffi.meta.__sub",
"ffi.meta.__mod", "ffi.meta.__mul",
"ffi.meta.__pow", "ffi.meta.__div",
"ffi.meta.__unm", "ffi.meta.__mod",
"ffi.meta.__tostring", "ffi.meta.__pow",
"ffi.meta.__pairs", "ffi.meta.__unm",
"ffi.meta.__ipairs", "ffi.meta.__tostring",
"ffi.clib.__index", "ffi.meta.__pairs",
"ffi.clib.__newindex", "ffi.meta.__ipairs",
"ffi.clib.__gc", "ffi.clib.__index",
"ffi.callback.free", "ffi.clib.__newindex",
"ffi.callback.set", "ffi.clib.__gc",
"ffi.cdef", "ffi.callback.free",
"ffi.new", "ffi.callback.set",
"ffi.cast", "ffi.cdef",
"ffi.typeof", "ffi.new",
"ffi.typeinfo", "ffi.cast",
"ffi.istype", "ffi.typeof",
"ffi.sizeof", "ffi.typeinfo",
"ffi.alignof", "ffi.istype",
"ffi.offsetof", "ffi.sizeof",
"ffi.errno", "ffi.alignof",
"ffi.string", "ffi.offsetof",
"ffi.copy", "ffi.errno",
"ffi.fill", "ffi.string",
"ffi.abi", "ffi.copy",
"ffi.metatype", "ffi.fill",
"ffi.gc", "ffi.abi",
"ffi.load", "ffi.metatype",
"buffer.method.free", "ffi.gc",
"buffer.method.reset", "ffi.load",
"buffer.method.skip", "buffer.method.free",
"buffer.method.set", "buffer.method.reset",
"buffer.method.put", "buffer.method.skip",
"buffer.method.putf", "buffer.method.set",
"buffer.method.get", "buffer.method.put",
"buffer.method.putcdata", "buffer.method.putf",
"buffer.method.reserve", "buffer.method.get",
"buffer.method.commit", "buffer.method.putcdata",
"buffer.method.ref", "buffer.method.reserve",
"buffer.method.encode", "buffer.method.commit",
"buffer.method.decode", "buffer.method.ref",
"buffer.method.__gc", "buffer.method.encode",
"buffer.method.__tostring", "buffer.method.decode",
"buffer.method.__len", "buffer.method.__gc",
"buffer.new", "buffer.method.__tostring",
"buffer.encode", "buffer.method.__len",
"buffer.decode", "buffer.new",
}, "buffer.encode",
"buffer.decode",
} },
}
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT profiler zones. -- LuaJIT profiler zones.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -0,0 +1,79 @@
/*
** LuaJIT -- a Just-In-Time Compiler for Lua. https://luajit.org/
**
** Copyright (C) 2005-2023 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 in the Software without restriction, including
** without limitation the rights to use, copy, modify, merge, publish,
** distribute, sublicense, and/or sell copies of the Software, and to
** permit persons to whom the Software is furnished to do so, subject to
** the following conditions:
**
** The above copyright notice and this permission notice shall be
** included in all copies or substantial portions of the Software.
**
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**
** [ MIT license: https://www.opensource.org/licenses/mit-license.php ]
*/
#ifndef _LUAJIT_H
#define _LUAJIT_H
#include "lua.h"
#define LUAJIT_VERSION "LuaJIT 2.1.1700008891"
#define LUAJIT_VERSION_NUM 20199 /* Deprecated. */
#define LUAJIT_VERSION_SYM luaJIT_version_2_1_1700008891
#define LUAJIT_COPYRIGHT "Copyright (C) 2005-2023 Mike Pall"
#define LUAJIT_URL "https://luajit.org/"
/* Modes for luaJIT_setmode. */
#define LUAJIT_MODE_MASK 0x00ff
enum {
LUAJIT_MODE_ENGINE, /* Set mode for whole JIT engine. */
LUAJIT_MODE_DEBUG, /* Set debug mode (idx = level). */
LUAJIT_MODE_FUNC, /* Change mode for a function. */
LUAJIT_MODE_ALLFUNC, /* Recurse into subroutine protos. */
LUAJIT_MODE_ALLSUBFUNC, /* Change only the subroutines. */
LUAJIT_MODE_TRACE, /* Flush a compiled trace. */
LUAJIT_MODE_WRAPCFUNC = 0x10, /* Set wrapper mode for C function calls. */
LUAJIT_MODE_MAX
};
/* Flags or'ed in to the mode. */
#define LUAJIT_MODE_OFF 0x0000 /* Turn feature off. */
#define LUAJIT_MODE_ON 0x0100 /* Turn feature on. */
#define LUAJIT_MODE_FLUSH 0x0200 /* Flush JIT-compiled code. */
/* LuaJIT public C API. */
/* Control the JIT engine. */
LUA_API int luaJIT_setmode(lua_State *L, int idx, int mode);
/* Low-overhead profiling API. */
typedef void (*luaJIT_profile_callback)(void *data, lua_State *L,
int samples, int vmstate);
LUA_API void luaJIT_profile_start(lua_State *L, const char *mode,
luaJIT_profile_callback cb, void *data);
LUA_API void luaJIT_profile_stop(lua_State *L);
LUA_API const char *luaJIT_profile_dumpstack(lua_State *L, const char *fmt,
int depth, size_t *len);
/* Enforce (dynamic) linker error for version mismatches. Call from main. */
LUA_API void LUAJIT_VERSION_SYM(void);
#endif
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT bytecode listing module. -- LuaJIT bytecode listing module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -41,7 +41,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local bit = require("bit") local bit = require("bit")
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT module to save/list bytecode. -- LuaJIT module to save/list bytecode.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -11,7 +11,7 @@
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch") assert(jit.version_num == 20199, "LuaJIT core/library version mismatch")
local bit = require("bit") local bit = require("bit")
-- Symbol name prefix for LuaJIT bytecode. -- Symbol name prefix for LuaJIT bytecode.
@@ -38,7 +38,7 @@ Save LuaJIT bytecode: luajit -b[options] input output
-- Stop handling options. -- Stop handling options.
- Use stdin as input and/or stdout as output. - Use stdin as input and/or stdout as output.
File types: c h obj o raw (default) File types: c cc h obj o raw (default)
]] ]]
os.exit(1) os.exit(1)
end end
@@ -81,7 +81,7 @@ end
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local map_type = { local map_type = {
raw = "raw", c = "c", h = "h", o = "obj", obj = "obj", raw = "raw", c = "c", cc = "c", h = "h", o = "obj", obj = "obj",
} }
local map_arch = { local map_arch = {
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM disassembler module. -- LuaJIT ARM disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This is a helper module used by the LuaJIT machine code dumper module. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM64 disassembler module. -- LuaJIT ARM64 disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
-- --
-- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com. -- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
@@ -107,24 +107,20 @@ local map_logsr = { -- Logical, shifted register.
[0] = { [0] = {
shift = 29, mask = 3, shift = 29, mask = 3,
[0] = { [0] = {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", [0] = "andDNMSg", "bicDNMSg"
"andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] ="orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", [0] = "orr|movDN0MSg", "orn|mvnDN0MSg"
"orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", [0] = "eorDNMSg", "eonDNMSg"
"eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", [0] = "ands|tstD0NMSg", "bicsDNMSg"
"ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg"
} }
}, },
false -- unallocated false -- unallocated
@@ -132,24 +128,20 @@ local map_logsr = { -- Logical, shifted register.
{ {
shift = 29, mask = 3, shift = 29, mask = 3,
[0] = { [0] = {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", [0] = "andDNMSg", "bicDNMSg"
"andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", [0] = "orr|movDN0MSg", "orn|mvnDN0MSg"
"orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", [0] = "eorDNMSg", "eonDNMSg"
"eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", [0] = "ands|tstD0NMSg", "bicsDNMSg"
"ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg"
} }
} }
} }
@@ -735,7 +727,7 @@ local map_cond = {
"hi", "ls", "ge", "lt", "gt", "le", "al", "hi", "ls", "ge", "lt", "gt", "le", "al",
} }
local map_shift = { [0] = "lsl", "lsr", "asr", } local map_shift = { [0] = "lsl", "lsr", "asr", "ror"}
local map_extend = { local map_extend = {
[0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx", [0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx",
@@ -956,7 +948,7 @@ local function disass_ins(ctx)
elseif p == "U" then elseif p == "U" then
local rn = map_regs.x[band(rshift(op, 5), 31)] local rn = map_regs.x[band(rshift(op, 5), 31)]
local sz = band(rshift(op, 30), 3) local sz = band(rshift(op, 30), 3)
local imm12 = lshift(arshift(lshift(op, 10), 20), sz) local imm12 = lshift(rshift(lshift(op, 10), 20), sz)
if imm12 ~= 0 then if imm12 ~= 0 then
x = "["..rn..", #"..imm12.."]" x = "["..rn..", #"..imm12.."]"
else else
@@ -993,8 +985,7 @@ local function disass_ins(ctx)
x = x.."]" x = x.."]"
end end
elseif p == "P" then elseif p == "P" then
local opcv, sh = rshift(op, 26), 2 local sh = 2 + rshift(op, 31 - band(rshift(op, 26), 1))
if opcv >= 0x2a then sh = 4 elseif opcv >= 0x1b then sh = 3 end
local imm7 = lshift(arshift(lshift(op, 10), 25), sh) local imm7 = lshift(arshift(lshift(op, 10), 25), sh)
local rn = map_regs.x[band(rshift(op, 5), 31)] local rn = map_regs.x[band(rshift(op, 5), 31)]
local ind = band(rshift(op, 23), 3) local ind = band(rshift(op, 23), 3)
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM64BE disassembler wrapper module. -- LuaJIT ARM64BE disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- ARM64 instructions are always little-endian. So just forward to the -- ARM64 instructions are always little-endian. So just forward to the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS disassembler module. -- LuaJIT MIPS disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT/X license. See Copyright Notice in luajit.h -- 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. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64 disassembler wrapper module. -- LuaJIT MIPS64 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the big-endian functions from the -- This module just exports the big-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64EL disassembler wrapper module. -- LuaJIT MIPS64EL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the little-endian functions from the -- This module just exports the little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64R6 disassembler wrapper module. -- LuaJIT MIPS64R6 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the r6 big-endian functions from the -- This module just exports the r6 big-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64R6EL disassembler wrapper module. -- LuaJIT MIPS64R6EL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the r6 little-endian functions from the -- This module just exports the r6 little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPSEL disassembler wrapper module. -- LuaJIT MIPSEL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the little-endian functions from the -- This module just exports the little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT PPC disassembler module. -- LuaJIT PPC disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT/X license. See Copyright Notice in luajit.h -- 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. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT x64 disassembler wrapper module. -- LuaJIT x64 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the 64 bit functions from the combined -- This module just exports the 64 bit functions from the combined
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT x86/x64 disassembler module. -- LuaJIT x86/x64 disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This is a helper module used by the LuaJIT machine code dumper module. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT compiler dump module. -- LuaJIT compiler dump module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -55,7 +55,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT profiler. -- LuaJIT profiler.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -41,7 +41,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local profile = require("jit.profile") local profile = require("jit.profile")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local math = math local math = math
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- Verbose mode of the LuaJIT compiler. -- Verbose mode of the LuaJIT compiler.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -59,7 +59,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo
+396 -394
View File
@@ -1,394 +1,396 @@
-- This is a generated file. DO NOT EDIT! -- This is a generated file. DO NOT EDIT!
return { assert(require("jit").version == "LuaJIT 2.1.1700008891", "LuaJIT core/library version mismatch")
bcnames = "ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW", return {
irnames = "LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF TMPREFSTRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ALEN ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ", bcnames = "ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW",
irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "log", "log2", "other", }, irnames = "LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF TMPREFSTRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ALEN ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ",
irfield = { [0]="str.len", "func.env", "func.pc", "func.ffid", "thread.env", "tab.meta", "tab.array", "tab.node", "tab.asize", "tab.hmask", "tab.nomm", "udata.meta", "udata.udtype", "udata.file", "sbuf.w", "sbuf.e", "sbuf.b", "sbuf.l", "sbuf.ref", "sbuf.r", "cdata.ctypeid", "cdata.ptr", "cdata.int", "cdata.int64", "cdata.int64_4", }, irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "log", "log2", "other", },
ircall = { irfield = { [0]="str.len", "func.env", "func.pc", "func.ffid", "thread.env", "tab.meta", "tab.array", "tab.node", "tab.asize", "tab.hmask", "tab.nomm", "udata.meta", "udata.udtype", "udata.file", "sbuf.w", "sbuf.e", "sbuf.b", "sbuf.l", "sbuf.ref", "sbuf.r", "cdata.ctypeid", "cdata.ptr", "cdata.int", "cdata.int64", "cdata.int64_4", },
[0]="lj_str_cmp",
"lj_str_find", ircall = {
"lj_str_new", [0]="lj_str_cmp",
"lj_strscan_num", "lj_str_find",
"lj_strfmt_int", "lj_str_new",
"lj_strfmt_num", "lj_strscan_num",
"lj_strfmt_char", "lj_strfmt_int",
"lj_strfmt_putint", "lj_strfmt_num",
"lj_strfmt_putnum", "lj_strfmt_char",
"lj_strfmt_putquoted", "lj_strfmt_putint",
"lj_strfmt_putfxint", "lj_strfmt_putnum",
"lj_strfmt_putfnum_int", "lj_strfmt_putquoted",
"lj_strfmt_putfnum_uint", "lj_strfmt_putfxint",
"lj_strfmt_putfnum", "lj_strfmt_putfnum_int",
"lj_strfmt_putfstr", "lj_strfmt_putfnum_uint",
"lj_strfmt_putfchar", "lj_strfmt_putfnum",
"lj_buf_putmem", "lj_strfmt_putfstr",
"lj_buf_putstr", "lj_strfmt_putfchar",
"lj_buf_putchar", "lj_buf_putmem",
"lj_buf_putstr_reverse", "lj_buf_putstr",
"lj_buf_putstr_lower", "lj_buf_putchar",
"lj_buf_putstr_upper", "lj_buf_putstr_reverse",
"lj_buf_putstr_rep", "lj_buf_putstr_lower",
"lj_buf_puttab", "lj_buf_putstr_upper",
"lj_bufx_set", "lj_buf_putstr_rep",
"lj_bufx_more", "lj_buf_puttab",
"lj_serialize_put", "lj_bufx_set",
"lj_serialize_get", "lj_bufx_more",
"lj_serialize_encode", "lj_serialize_put",
"lj_serialize_decode", "lj_serialize_get",
"lj_buf_tostr", "lj_serialize_encode",
"lj_tab_new_ah", "lj_serialize_decode",
"lj_tab_new1", "lj_buf_tostr",
"lj_tab_dup", "lj_tab_new_ah",
"lj_tab_clear", "lj_tab_new1",
"lj_tab_newkey", "lj_tab_dup",
"lj_tab_keyindex", "lj_tab_clear",
"lj_vm_next", "lj_tab_newkey",
"lj_tab_len", "lj_tab_keyindex",
"lj_tab_len_hint", "lj_vm_next",
"lj_gc_step_jit", "lj_tab_len",
"lj_gc_barrieruv", "lj_tab_len_hint",
"lj_mem_newgco", "lj_gc_step_jit",
"lj_prng_u64d", "lj_gc_barrieruv",
"lj_vm_modi", "lj_mem_newgco",
"log10", "lj_prng_u64d",
"exp", "lj_vm_modi",
"sin", "log10",
"cos", "exp",
"tan", "sin",
"asin", "cos",
"acos", "tan",
"atan", "asin",
"sinh", "acos",
"cosh", "atan",
"tanh", "sinh",
"fputc", "cosh",
"fwrite", "tanh",
"fflush", "fputc",
"lj_vm_floor", "fwrite",
"lj_vm_ceil", "fflush",
"lj_vm_trunc", "lj_vm_floor",
"sqrt", "lj_vm_ceil",
"log", "lj_vm_trunc",
"lj_vm_log2", "sqrt",
"pow", "log",
"atan2", "lj_vm_log2",
"ldexp", "pow",
"lj_vm_tobit", "atan2",
"softfp_add", "ldexp",
"softfp_sub", "lj_vm_tobit",
"softfp_mul", "softfp_add",
"softfp_div", "softfp_sub",
"softfp_cmp", "softfp_mul",
"softfp_i2d", "softfp_div",
"softfp_d2i", "softfp_cmp",
"lj_vm_sfmin", "softfp_i2d",
"lj_vm_sfmax", "softfp_d2i",
"lj_vm_tointg", "lj_vm_sfmin",
"softfp_ui2d", "lj_vm_sfmax",
"softfp_f2d", "lj_vm_tointg",
"softfp_d2ui", "softfp_ui2d",
"softfp_d2f", "softfp_f2d",
"softfp_i2f", "softfp_d2ui",
"softfp_ui2f", "softfp_d2f",
"softfp_f2i", "softfp_i2f",
"softfp_f2ui", "softfp_ui2f",
"fp64_l2d", "softfp_f2i",
"fp64_ul2d", "softfp_f2ui",
"fp64_l2f", "fp64_l2d",
"fp64_ul2f", "fp64_ul2d",
"fp64_d2l", "fp64_l2f",
"fp64_d2ul", "fp64_ul2f",
"fp64_f2l", "fp64_d2l",
"fp64_f2ul", "fp64_d2ul",
"lj_carith_divi64", "fp64_f2l",
"lj_carith_divu64", "fp64_f2ul",
"lj_carith_modi64", "lj_carith_divi64",
"lj_carith_modu64", "lj_carith_divu64",
"lj_carith_powi64", "lj_carith_modi64",
"lj_carith_powu64", "lj_carith_modu64",
"lj_cdata_newv", "lj_carith_powi64",
"lj_cdata_setfin", "lj_carith_powu64",
"strlen", "lj_cdata_newv",
"memcpy", "lj_cdata_setfin",
"memset", "strlen",
"lj_vm_errno", "memcpy",
"lj_carith_mul64", "memset",
"lj_carith_shl64", "lj_vm_errno",
"lj_carith_shr64", "lj_carith_mul64",
"lj_carith_sar64", "lj_carith_shl64",
"lj_carith_rol64", "lj_carith_shr64",
"lj_carith_ror64", "lj_carith_sar64",
}, "lj_carith_rol64",
"lj_carith_ror64",
traceerr = { },
[0]="error thrown or hook called during recording",
"trace too short", traceerr = {
"trace too long", [0]="error thrown or hook called during recording",
"trace too deep", "trace too short",
"too many snapshots", "trace too long",
"blacklisted", "trace too deep",
"retry recording", "too many snapshots",
"NYI: bytecode %d", "blacklisted",
"leaving loop in root trace", "retry recording",
"inner loop in root trace", "NYI: bytecode %d",
"loop unroll limit reached", "leaving loop in root trace",
"bad argument type", "inner loop in root trace",
"JIT compilation disabled for function", "loop unroll limit reached",
"call unroll limit reached", "bad argument type",
"down-recursion, restarting", "JIT compilation disabled for function",
"NYI: unsupported variant of FastFunc %s", "call unroll limit reached",
"NYI: return to lower frame", "down-recursion, restarting",
"store with nil or NaN key", "NYI: unsupported variant of FastFunc %s",
"missing metamethod", "NYI: return to lower frame",
"looping index lookup", "store with nil or NaN key",
"NYI: mixed sparse/dense table", "missing metamethod",
"symbol not in cache", "looping index lookup",
"NYI: unsupported C type conversion", "NYI: mixed sparse/dense table",
"NYI: unsupported C function type", "symbol not in cache",
"guard would always fail", "NYI: unsupported C type conversion",
"too many PHIs", "NYI: unsupported C function type",
"persistent type instability", "guard would always fail",
"failed to allocate mcode memory", "too many PHIs",
"machine code too long", "persistent type instability",
"hit mcode limit (retrying)", "failed to allocate mcode memory",
"too many spill slots", "machine code too long",
"inconsistent register allocation", "hit mcode limit (retrying)",
"NYI: cannot assemble IR instruction %d", "too many spill slots",
"NYI: PHI shuffling too complex", "inconsistent register allocation",
"NYI: register coalescing too complex", "NYI: cannot assemble IR instruction %d",
}, "NYI: PHI shuffling too complex",
"NYI: register coalescing too complex",
ffnames = { },
[0]="Lua",
"C", ffnames = {
"assert", [0]="Lua",
"type", "C",
"next", "assert",
"pairs", "type",
"ipairs_aux", "next",
"ipairs", "pairs",
"getmetatable", "ipairs_aux",
"setmetatable", "ipairs",
"getfenv", "getmetatable",
"setfenv", "setmetatable",
"rawget", "getfenv",
"rawset", "setfenv",
"rawequal", "rawget",
"unpack", "rawset",
"select", "rawequal",
"tonumber", "unpack",
"tostring", "select",
"error", "tonumber",
"pcall", "tostring",
"xpcall", "error",
"loadfile", "pcall",
"load", "xpcall",
"loadstring", "loadfile",
"dofile", "load",
"gcinfo", "loadstring",
"collectgarbage", "dofile",
"newproxy", "gcinfo",
"print", "collectgarbage",
"coroutine.status", "newproxy",
"coroutine.running", "print",
"coroutine.isyieldable", "coroutine.status",
"coroutine.create", "coroutine.running",
"coroutine.yield", "coroutine.isyieldable",
"coroutine.resume", "coroutine.create",
"coroutine.wrap_aux", "coroutine.yield",
"coroutine.wrap", "coroutine.resume",
"math.abs", "coroutine.wrap_aux",
"math.floor", "coroutine.wrap",
"math.ceil", "math.abs",
"math.sqrt", "math.floor",
"math.log10", "math.ceil",
"math.exp", "math.sqrt",
"math.sin", "math.log10",
"math.cos", "math.exp",
"math.tan", "math.sin",
"math.asin", "math.cos",
"math.acos", "math.tan",
"math.atan", "math.asin",
"math.sinh", "math.acos",
"math.cosh", "math.atan",
"math.tanh", "math.sinh",
"math.frexp", "math.cosh",
"math.modf", "math.tanh",
"math.log", "math.frexp",
"math.atan2", "math.modf",
"math.pow", "math.log",
"math.fmod", "math.atan2",
"math.ldexp", "math.pow",
"math.min", "math.fmod",
"math.max", "math.ldexp",
"math.random", "math.min",
"math.randomseed", "math.max",
"bit.tobit", "math.random",
"bit.bnot", "math.randomseed",
"bit.bswap", "bit.tobit",
"bit.lshift", "bit.bnot",
"bit.rshift", "bit.bswap",
"bit.arshift", "bit.lshift",
"bit.rol", "bit.rshift",
"bit.ror", "bit.arshift",
"bit.band", "bit.rol",
"bit.bor", "bit.ror",
"bit.bxor", "bit.band",
"bit.tohex", "bit.bor",
"string.byte", "bit.bxor",
"string.char", "bit.tohex",
"string.sub", "string.byte",
"string.rep", "string.char",
"string.reverse", "string.sub",
"string.lower", "string.rep",
"string.upper", "string.reverse",
"string.dump", "string.lower",
"string.find", "string.upper",
"string.match", "string.dump",
"string.gmatch_aux", "string.find",
"string.gmatch", "string.match",
"string.gsub", "string.gmatch_aux",
"string.format", "string.gmatch",
"table.maxn", "string.gsub",
"table.insert", "string.format",
"table.concat", "table.maxn",
"table.sort", "table.insert",
"table.new", "table.concat",
"table.clear", "table.sort",
"io.method.close", "table.new",
"io.method.read", "table.clear",
"io.method.write", "io.method.close",
"io.method.flush", "io.method.read",
"io.method.seek", "io.method.write",
"io.method.setvbuf", "io.method.flush",
"io.method.lines", "io.method.seek",
"io.method.__gc", "io.method.setvbuf",
"io.method.__tostring", "io.method.lines",
"io.open", "io.method.__gc",
"io.popen", "io.method.__tostring",
"io.tmpfile", "io.open",
"io.close", "io.popen",
"io.read", "io.tmpfile",
"io.write", "io.close",
"io.flush", "io.read",
"io.input", "io.write",
"io.output", "io.flush",
"io.lines", "io.input",
"io.type", "io.output",
"os.execute", "io.lines",
"os.remove", "io.type",
"os.rename", "os.execute",
"os.tmpname", "os.remove",
"os.getenv", "os.rename",
"os.exit", "os.tmpname",
"os.clock", "os.getenv",
"os.date", "os.exit",
"os.time", "os.clock",
"os.difftime", "os.date",
"os.setlocale", "os.time",
"debug.getregistry", "os.difftime",
"debug.getmetatable", "os.setlocale",
"debug.setmetatable", "debug.getregistry",
"debug.getfenv", "debug.getmetatable",
"debug.setfenv", "debug.setmetatable",
"debug.getinfo", "debug.getfenv",
"debug.getlocal", "debug.setfenv",
"debug.setlocal", "debug.getinfo",
"debug.getupvalue", "debug.getlocal",
"debug.setupvalue", "debug.setlocal",
"debug.upvalueid", "debug.getupvalue",
"debug.upvaluejoin", "debug.setupvalue",
"debug.sethook", "debug.upvalueid",
"debug.gethook", "debug.upvaluejoin",
"debug.debug", "debug.sethook",
"debug.traceback", "debug.gethook",
"jit.on", "debug.debug",
"jit.off", "debug.traceback",
"jit.flush", "jit.on",
"jit.status", "jit.off",
"jit.security", "jit.flush",
"jit.attach", "jit.status",
"jit.util.funcinfo", "jit.security",
"jit.util.funcbc", "jit.attach",
"jit.util.funck", "jit.util.funcinfo",
"jit.util.funcuvname", "jit.util.funcbc",
"jit.util.traceinfo", "jit.util.funck",
"jit.util.traceir", "jit.util.funcuvname",
"jit.util.tracek", "jit.util.traceinfo",
"jit.util.tracesnap", "jit.util.traceir",
"jit.util.tracemc", "jit.util.tracek",
"jit.util.traceexitstub", "jit.util.tracesnap",
"jit.util.ircalladdr", "jit.util.tracemc",
"jit.opt.start", "jit.util.traceexitstub",
"jit.profile.start", "jit.util.ircalladdr",
"jit.profile.stop", "jit.opt.start",
"jit.profile.dumpstack", "jit.profile.start",
"ffi.meta.__index", "jit.profile.stop",
"ffi.meta.__newindex", "jit.profile.dumpstack",
"ffi.meta.__eq", "ffi.meta.__index",
"ffi.meta.__len", "ffi.meta.__newindex",
"ffi.meta.__lt", "ffi.meta.__eq",
"ffi.meta.__le", "ffi.meta.__len",
"ffi.meta.__concat", "ffi.meta.__lt",
"ffi.meta.__call", "ffi.meta.__le",
"ffi.meta.__add", "ffi.meta.__concat",
"ffi.meta.__sub", "ffi.meta.__call",
"ffi.meta.__mul", "ffi.meta.__add",
"ffi.meta.__div", "ffi.meta.__sub",
"ffi.meta.__mod", "ffi.meta.__mul",
"ffi.meta.__pow", "ffi.meta.__div",
"ffi.meta.__unm", "ffi.meta.__mod",
"ffi.meta.__tostring", "ffi.meta.__pow",
"ffi.meta.__pairs", "ffi.meta.__unm",
"ffi.meta.__ipairs", "ffi.meta.__tostring",
"ffi.clib.__index", "ffi.meta.__pairs",
"ffi.clib.__newindex", "ffi.meta.__ipairs",
"ffi.clib.__gc", "ffi.clib.__index",
"ffi.callback.free", "ffi.clib.__newindex",
"ffi.callback.set", "ffi.clib.__gc",
"ffi.cdef", "ffi.callback.free",
"ffi.new", "ffi.callback.set",
"ffi.cast", "ffi.cdef",
"ffi.typeof", "ffi.new",
"ffi.typeinfo", "ffi.cast",
"ffi.istype", "ffi.typeof",
"ffi.sizeof", "ffi.typeinfo",
"ffi.alignof", "ffi.istype",
"ffi.offsetof", "ffi.sizeof",
"ffi.errno", "ffi.alignof",
"ffi.string", "ffi.offsetof",
"ffi.copy", "ffi.errno",
"ffi.fill", "ffi.string",
"ffi.abi", "ffi.copy",
"ffi.metatype", "ffi.fill",
"ffi.gc", "ffi.abi",
"ffi.load", "ffi.metatype",
"buffer.method.free", "ffi.gc",
"buffer.method.reset", "ffi.load",
"buffer.method.skip", "buffer.method.free",
"buffer.method.set", "buffer.method.reset",
"buffer.method.put", "buffer.method.skip",
"buffer.method.putf", "buffer.method.set",
"buffer.method.get", "buffer.method.put",
"buffer.method.putcdata", "buffer.method.putf",
"buffer.method.reserve", "buffer.method.get",
"buffer.method.commit", "buffer.method.putcdata",
"buffer.method.ref", "buffer.method.reserve",
"buffer.method.encode", "buffer.method.commit",
"buffer.method.decode", "buffer.method.ref",
"buffer.method.__gc", "buffer.method.encode",
"buffer.method.__tostring", "buffer.method.decode",
"buffer.method.__len", "buffer.method.__gc",
"buffer.new", "buffer.method.__tostring",
"buffer.encode", "buffer.method.__len",
"buffer.decode", "buffer.new",
}, "buffer.encode",
"buffer.decode",
} },
}
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT profiler zones. -- LuaJIT profiler zones.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
Binary file not shown.
@@ -0,0 +1,79 @@
/*
** LuaJIT -- a Just-In-Time Compiler for Lua. https://luajit.org/
**
** Copyright (C) 2005-2023 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 in the Software without restriction, including
** without limitation the rights to use, copy, modify, merge, publish,
** distribute, sublicense, and/or sell copies of the Software, and to
** permit persons to whom the Software is furnished to do so, subject to
** the following conditions:
**
** The above copyright notice and this permission notice shall be
** included in all copies or substantial portions of the Software.
**
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**
** [ MIT license: https://www.opensource.org/licenses/mit-license.php ]
*/
#ifndef _LUAJIT_H
#define _LUAJIT_H
#include "lua.h"
#define LUAJIT_VERSION "LuaJIT 2.1.1700008891"
#define LUAJIT_VERSION_NUM 20199 /* Deprecated. */
#define LUAJIT_VERSION_SYM luaJIT_version_2_1_1700008891
#define LUAJIT_COPYRIGHT "Copyright (C) 2005-2023 Mike Pall"
#define LUAJIT_URL "https://luajit.org/"
/* Modes for luaJIT_setmode. */
#define LUAJIT_MODE_MASK 0x00ff
enum {
LUAJIT_MODE_ENGINE, /* Set mode for whole JIT engine. */
LUAJIT_MODE_DEBUG, /* Set debug mode (idx = level). */
LUAJIT_MODE_FUNC, /* Change mode for a function. */
LUAJIT_MODE_ALLFUNC, /* Recurse into subroutine protos. */
LUAJIT_MODE_ALLSUBFUNC, /* Change only the subroutines. */
LUAJIT_MODE_TRACE, /* Flush a compiled trace. */
LUAJIT_MODE_WRAPCFUNC = 0x10, /* Set wrapper mode for C function calls. */
LUAJIT_MODE_MAX
};
/* Flags or'ed in to the mode. */
#define LUAJIT_MODE_OFF 0x0000 /* Turn feature off. */
#define LUAJIT_MODE_ON 0x0100 /* Turn feature on. */
#define LUAJIT_MODE_FLUSH 0x0200 /* Flush JIT-compiled code. */
/* LuaJIT public C API. */
/* Control the JIT engine. */
LUA_API int luaJIT_setmode(lua_State *L, int idx, int mode);
/* Low-overhead profiling API. */
typedef void (*luaJIT_profile_callback)(void *data, lua_State *L,
int samples, int vmstate);
LUA_API void luaJIT_profile_start(lua_State *L, const char *mode,
luaJIT_profile_callback cb, void *data);
LUA_API void luaJIT_profile_stop(lua_State *L);
LUA_API const char *luaJIT_profile_dumpstack(lua_State *L, const char *fmt,
int depth, size_t *len);
/* Enforce (dynamic) linker error for version mismatches. Call from main. */
LUA_API void LUAJIT_VERSION_SYM(void);
#endif
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT bytecode listing module. -- LuaJIT bytecode listing module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -41,7 +41,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local bit = require("bit") local bit = require("bit")
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT module to save/list bytecode. -- LuaJIT module to save/list bytecode.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -11,7 +11,7 @@
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch") assert(jit.version_num == 20199, "LuaJIT core/library version mismatch")
local bit = require("bit") local bit = require("bit")
-- Symbol name prefix for LuaJIT bytecode. -- Symbol name prefix for LuaJIT bytecode.
@@ -38,7 +38,7 @@ Save LuaJIT bytecode: luajit -b[options] input output
-- Stop handling options. -- Stop handling options.
- Use stdin as input and/or stdout as output. - Use stdin as input and/or stdout as output.
File types: c h obj o raw (default) File types: c cc h obj o raw (default)
]] ]]
os.exit(1) os.exit(1)
end end
@@ -81,7 +81,7 @@ end
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local map_type = { local map_type = {
raw = "raw", c = "c", h = "h", o = "obj", obj = "obj", raw = "raw", c = "c", cc = "c", h = "h", o = "obj", obj = "obj",
} }
local map_arch = { local map_arch = {
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM disassembler module. -- LuaJIT ARM disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This is a helper module used by the LuaJIT machine code dumper module. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM64 disassembler module. -- LuaJIT ARM64 disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
-- --
-- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com. -- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
@@ -107,24 +107,20 @@ local map_logsr = { -- Logical, shifted register.
[0] = { [0] = {
shift = 29, mask = 3, shift = 29, mask = 3,
[0] = { [0] = {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", [0] = "andDNMSg", "bicDNMSg"
"andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] ="orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", [0] = "orr|movDN0MSg", "orn|mvnDN0MSg"
"orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", [0] = "eorDNMSg", "eonDNMSg"
"eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", [0] = "ands|tstD0NMSg", "bicsDNMSg"
"ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg"
} }
}, },
false -- unallocated false -- unallocated
@@ -132,24 +128,20 @@ local map_logsr = { -- Logical, shifted register.
{ {
shift = 29, mask = 3, shift = 29, mask = 3,
[0] = { [0] = {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", [0] = "andDNMSg", "bicDNMSg"
"andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", [0] = "orr|movDN0MSg", "orn|mvnDN0MSg"
"orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", [0] = "eorDNMSg", "eonDNMSg"
"eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg"
}, },
{ {
shift = 21, mask = 7, shift = 21, mask = 1,
[0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", [0] = "ands|tstD0NMSg", "bicsDNMSg"
"ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg"
} }
} }
} }
@@ -735,7 +727,7 @@ local map_cond = {
"hi", "ls", "ge", "lt", "gt", "le", "al", "hi", "ls", "ge", "lt", "gt", "le", "al",
} }
local map_shift = { [0] = "lsl", "lsr", "asr", } local map_shift = { [0] = "lsl", "lsr", "asr", "ror"}
local map_extend = { local map_extend = {
[0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx", [0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx",
@@ -956,7 +948,7 @@ local function disass_ins(ctx)
elseif p == "U" then elseif p == "U" then
local rn = map_regs.x[band(rshift(op, 5), 31)] local rn = map_regs.x[band(rshift(op, 5), 31)]
local sz = band(rshift(op, 30), 3) local sz = band(rshift(op, 30), 3)
local imm12 = lshift(arshift(lshift(op, 10), 20), sz) local imm12 = lshift(rshift(lshift(op, 10), 20), sz)
if imm12 ~= 0 then if imm12 ~= 0 then
x = "["..rn..", #"..imm12.."]" x = "["..rn..", #"..imm12.."]"
else else
@@ -993,8 +985,7 @@ local function disass_ins(ctx)
x = x.."]" x = x.."]"
end end
elseif p == "P" then elseif p == "P" then
local opcv, sh = rshift(op, 26), 2 local sh = 2 + rshift(op, 31 - band(rshift(op, 26), 1))
if opcv >= 0x2a then sh = 4 elseif opcv >= 0x1b then sh = 3 end
local imm7 = lshift(arshift(lshift(op, 10), 25), sh) local imm7 = lshift(arshift(lshift(op, 10), 25), sh)
local rn = map_regs.x[band(rshift(op, 5), 31)] local rn = map_regs.x[band(rshift(op, 5), 31)]
local ind = band(rshift(op, 23), 3) local ind = band(rshift(op, 23), 3)
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT ARM64BE disassembler wrapper module. -- LuaJIT ARM64BE disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- ARM64 instructions are always little-endian. So just forward to the -- ARM64 instructions are always little-endian. So just forward to the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS disassembler module. -- LuaJIT MIPS disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT/X license. See Copyright Notice in luajit.h -- 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. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64 disassembler wrapper module. -- LuaJIT MIPS64 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the big-endian functions from the -- This module just exports the big-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64EL disassembler wrapper module. -- LuaJIT MIPS64EL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the little-endian functions from the -- This module just exports the little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64R6 disassembler wrapper module. -- LuaJIT MIPS64R6 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the r6 big-endian functions from the -- This module just exports the r6 big-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPS64R6EL disassembler wrapper module. -- LuaJIT MIPS64R6EL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the r6 little-endian functions from the -- This module just exports the r6 little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT MIPSEL disassembler wrapper module. -- LuaJIT MIPSEL disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the little-endian functions from the -- This module just exports the little-endian functions from the
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT PPC disassembler module. -- LuaJIT PPC disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT/X license. See Copyright Notice in luajit.h -- 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. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT x64 disassembler wrapper module. -- LuaJIT x64 disassembler wrapper module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This module just exports the 64 bit functions from the combined -- This module just exports the 64 bit functions from the combined
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT x86/x64 disassembler module. -- LuaJIT x86/x64 disassembler module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- This is a helper module used by the LuaJIT machine code dumper module. -- This is a helper module used by the LuaJIT machine code dumper module.
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT compiler dump module. -- LuaJIT compiler dump module.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -55,7 +55,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT profiler. -- LuaJIT profiler.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -41,7 +41,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local profile = require("jit.profile") local profile = require("jit.profile")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local math = math local math = math
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- Verbose mode of the LuaJIT compiler. -- Verbose mode of the LuaJIT compiler.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
@@ -59,7 +59,6 @@
-- Cache some library functions and objects. -- Cache some library functions and objects.
local jit = require("jit") local jit = require("jit")
assert(jit.version_num == 20100, "LuaJIT core/library version mismatch")
local jutil = require("jit.util") local jutil = require("jit.util")
local vmdef = require("jit.vmdef") local vmdef = require("jit.vmdef")
local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo
@@ -1,394 +1,396 @@
-- This is a generated file. DO NOT EDIT! -- This is a generated file. DO NOT EDIT!
return { assert(require("jit").version == "LuaJIT 2.1.1700008891", "LuaJIT core/library version mismatch")
bcnames = "ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW", return {
irnames = "LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF TMPREFSTRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ALEN ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ", bcnames = "ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW",
irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "log", "log2", "other", }, irnames = "LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF TMPREFSTRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ALEN ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ",
irfield = { [0]="str.len", "func.env", "func.pc", "func.ffid", "thread.env", "tab.meta", "tab.array", "tab.node", "tab.asize", "tab.hmask", "tab.nomm", "udata.meta", "udata.udtype", "udata.file", "sbuf.w", "sbuf.e", "sbuf.b", "sbuf.l", "sbuf.ref", "sbuf.r", "cdata.ctypeid", "cdata.ptr", "cdata.int", "cdata.int64", "cdata.int64_4", }, irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "log", "log2", "other", },
ircall = { irfield = { [0]="str.len", "func.env", "func.pc", "func.ffid", "thread.env", "tab.meta", "tab.array", "tab.node", "tab.asize", "tab.hmask", "tab.nomm", "udata.meta", "udata.udtype", "udata.file", "sbuf.w", "sbuf.e", "sbuf.b", "sbuf.l", "sbuf.ref", "sbuf.r", "cdata.ctypeid", "cdata.ptr", "cdata.int", "cdata.int64", "cdata.int64_4", },
[0]="lj_str_cmp",
"lj_str_find", ircall = {
"lj_str_new", [0]="lj_str_cmp",
"lj_strscan_num", "lj_str_find",
"lj_strfmt_int", "lj_str_new",
"lj_strfmt_num", "lj_strscan_num",
"lj_strfmt_char", "lj_strfmt_int",
"lj_strfmt_putint", "lj_strfmt_num",
"lj_strfmt_putnum", "lj_strfmt_char",
"lj_strfmt_putquoted", "lj_strfmt_putint",
"lj_strfmt_putfxint", "lj_strfmt_putnum",
"lj_strfmt_putfnum_int", "lj_strfmt_putquoted",
"lj_strfmt_putfnum_uint", "lj_strfmt_putfxint",
"lj_strfmt_putfnum", "lj_strfmt_putfnum_int",
"lj_strfmt_putfstr", "lj_strfmt_putfnum_uint",
"lj_strfmt_putfchar", "lj_strfmt_putfnum",
"lj_buf_putmem", "lj_strfmt_putfstr",
"lj_buf_putstr", "lj_strfmt_putfchar",
"lj_buf_putchar", "lj_buf_putmem",
"lj_buf_putstr_reverse", "lj_buf_putstr",
"lj_buf_putstr_lower", "lj_buf_putchar",
"lj_buf_putstr_upper", "lj_buf_putstr_reverse",
"lj_buf_putstr_rep", "lj_buf_putstr_lower",
"lj_buf_puttab", "lj_buf_putstr_upper",
"lj_bufx_set", "lj_buf_putstr_rep",
"lj_bufx_more", "lj_buf_puttab",
"lj_serialize_put", "lj_bufx_set",
"lj_serialize_get", "lj_bufx_more",
"lj_serialize_encode", "lj_serialize_put",
"lj_serialize_decode", "lj_serialize_get",
"lj_buf_tostr", "lj_serialize_encode",
"lj_tab_new_ah", "lj_serialize_decode",
"lj_tab_new1", "lj_buf_tostr",
"lj_tab_dup", "lj_tab_new_ah",
"lj_tab_clear", "lj_tab_new1",
"lj_tab_newkey", "lj_tab_dup",
"lj_tab_keyindex", "lj_tab_clear",
"lj_vm_next", "lj_tab_newkey",
"lj_tab_len", "lj_tab_keyindex",
"lj_tab_len_hint", "lj_vm_next",
"lj_gc_step_jit", "lj_tab_len",
"lj_gc_barrieruv", "lj_tab_len_hint",
"lj_mem_newgco", "lj_gc_step_jit",
"lj_prng_u64d", "lj_gc_barrieruv",
"lj_vm_modi", "lj_mem_newgco",
"log10", "lj_prng_u64d",
"exp", "lj_vm_modi",
"sin", "log10",
"cos", "exp",
"tan", "sin",
"asin", "cos",
"acos", "tan",
"atan", "asin",
"sinh", "acos",
"cosh", "atan",
"tanh", "sinh",
"fputc", "cosh",
"fwrite", "tanh",
"fflush", "fputc",
"lj_vm_floor", "fwrite",
"lj_vm_ceil", "fflush",
"lj_vm_trunc", "lj_vm_floor",
"sqrt", "lj_vm_ceil",
"log", "lj_vm_trunc",
"lj_vm_log2", "sqrt",
"pow", "log",
"atan2", "lj_vm_log2",
"ldexp", "pow",
"lj_vm_tobit", "atan2",
"softfp_add", "ldexp",
"softfp_sub", "lj_vm_tobit",
"softfp_mul", "softfp_add",
"softfp_div", "softfp_sub",
"softfp_cmp", "softfp_mul",
"softfp_i2d", "softfp_div",
"softfp_d2i", "softfp_cmp",
"lj_vm_sfmin", "softfp_i2d",
"lj_vm_sfmax", "softfp_d2i",
"lj_vm_tointg", "lj_vm_sfmin",
"softfp_ui2d", "lj_vm_sfmax",
"softfp_f2d", "lj_vm_tointg",
"softfp_d2ui", "softfp_ui2d",
"softfp_d2f", "softfp_f2d",
"softfp_i2f", "softfp_d2ui",
"softfp_ui2f", "softfp_d2f",
"softfp_f2i", "softfp_i2f",
"softfp_f2ui", "softfp_ui2f",
"fp64_l2d", "softfp_f2i",
"fp64_ul2d", "softfp_f2ui",
"fp64_l2f", "fp64_l2d",
"fp64_ul2f", "fp64_ul2d",
"fp64_d2l", "fp64_l2f",
"fp64_d2ul", "fp64_ul2f",
"fp64_f2l", "fp64_d2l",
"fp64_f2ul", "fp64_d2ul",
"lj_carith_divi64", "fp64_f2l",
"lj_carith_divu64", "fp64_f2ul",
"lj_carith_modi64", "lj_carith_divi64",
"lj_carith_modu64", "lj_carith_divu64",
"lj_carith_powi64", "lj_carith_modi64",
"lj_carith_powu64", "lj_carith_modu64",
"lj_cdata_newv", "lj_carith_powi64",
"lj_cdata_setfin", "lj_carith_powu64",
"strlen", "lj_cdata_newv",
"memcpy", "lj_cdata_setfin",
"memset", "strlen",
"lj_vm_errno", "memcpy",
"lj_carith_mul64", "memset",
"lj_carith_shl64", "lj_vm_errno",
"lj_carith_shr64", "lj_carith_mul64",
"lj_carith_sar64", "lj_carith_shl64",
"lj_carith_rol64", "lj_carith_shr64",
"lj_carith_ror64", "lj_carith_sar64",
}, "lj_carith_rol64",
"lj_carith_ror64",
traceerr = { },
[0]="error thrown or hook called during recording",
"trace too short", traceerr = {
"trace too long", [0]="error thrown or hook called during recording",
"trace too deep", "trace too short",
"too many snapshots", "trace too long",
"blacklisted", "trace too deep",
"retry recording", "too many snapshots",
"NYI: bytecode %d", "blacklisted",
"leaving loop in root trace", "retry recording",
"inner loop in root trace", "NYI: bytecode %d",
"loop unroll limit reached", "leaving loop in root trace",
"bad argument type", "inner loop in root trace",
"JIT compilation disabled for function", "loop unroll limit reached",
"call unroll limit reached", "bad argument type",
"down-recursion, restarting", "JIT compilation disabled for function",
"NYI: unsupported variant of FastFunc %s", "call unroll limit reached",
"NYI: return to lower frame", "down-recursion, restarting",
"store with nil or NaN key", "NYI: unsupported variant of FastFunc %s",
"missing metamethod", "NYI: return to lower frame",
"looping index lookup", "store with nil or NaN key",
"NYI: mixed sparse/dense table", "missing metamethod",
"symbol not in cache", "looping index lookup",
"NYI: unsupported C type conversion", "NYI: mixed sparse/dense table",
"NYI: unsupported C function type", "symbol not in cache",
"guard would always fail", "NYI: unsupported C type conversion",
"too many PHIs", "NYI: unsupported C function type",
"persistent type instability", "guard would always fail",
"failed to allocate mcode memory", "too many PHIs",
"machine code too long", "persistent type instability",
"hit mcode limit (retrying)", "failed to allocate mcode memory",
"too many spill slots", "machine code too long",
"inconsistent register allocation", "hit mcode limit (retrying)",
"NYI: cannot assemble IR instruction %d", "too many spill slots",
"NYI: PHI shuffling too complex", "inconsistent register allocation",
"NYI: register coalescing too complex", "NYI: cannot assemble IR instruction %d",
}, "NYI: PHI shuffling too complex",
"NYI: register coalescing too complex",
ffnames = { },
[0]="Lua",
"C", ffnames = {
"assert", [0]="Lua",
"type", "C",
"next", "assert",
"pairs", "type",
"ipairs_aux", "next",
"ipairs", "pairs",
"getmetatable", "ipairs_aux",
"setmetatable", "ipairs",
"getfenv", "getmetatable",
"setfenv", "setmetatable",
"rawget", "getfenv",
"rawset", "setfenv",
"rawequal", "rawget",
"unpack", "rawset",
"select", "rawequal",
"tonumber", "unpack",
"tostring", "select",
"error", "tonumber",
"pcall", "tostring",
"xpcall", "error",
"loadfile", "pcall",
"load", "xpcall",
"loadstring", "loadfile",
"dofile", "load",
"gcinfo", "loadstring",
"collectgarbage", "dofile",
"newproxy", "gcinfo",
"print", "collectgarbage",
"coroutine.status", "newproxy",
"coroutine.running", "print",
"coroutine.isyieldable", "coroutine.status",
"coroutine.create", "coroutine.running",
"coroutine.yield", "coroutine.isyieldable",
"coroutine.resume", "coroutine.create",
"coroutine.wrap_aux", "coroutine.yield",
"coroutine.wrap", "coroutine.resume",
"math.abs", "coroutine.wrap_aux",
"math.floor", "coroutine.wrap",
"math.ceil", "math.abs",
"math.sqrt", "math.floor",
"math.log10", "math.ceil",
"math.exp", "math.sqrt",
"math.sin", "math.log10",
"math.cos", "math.exp",
"math.tan", "math.sin",
"math.asin", "math.cos",
"math.acos", "math.tan",
"math.atan", "math.asin",
"math.sinh", "math.acos",
"math.cosh", "math.atan",
"math.tanh", "math.sinh",
"math.frexp", "math.cosh",
"math.modf", "math.tanh",
"math.log", "math.frexp",
"math.atan2", "math.modf",
"math.pow", "math.log",
"math.fmod", "math.atan2",
"math.ldexp", "math.pow",
"math.min", "math.fmod",
"math.max", "math.ldexp",
"math.random", "math.min",
"math.randomseed", "math.max",
"bit.tobit", "math.random",
"bit.bnot", "math.randomseed",
"bit.bswap", "bit.tobit",
"bit.lshift", "bit.bnot",
"bit.rshift", "bit.bswap",
"bit.arshift", "bit.lshift",
"bit.rol", "bit.rshift",
"bit.ror", "bit.arshift",
"bit.band", "bit.rol",
"bit.bor", "bit.ror",
"bit.bxor", "bit.band",
"bit.tohex", "bit.bor",
"string.byte", "bit.bxor",
"string.char", "bit.tohex",
"string.sub", "string.byte",
"string.rep", "string.char",
"string.reverse", "string.sub",
"string.lower", "string.rep",
"string.upper", "string.reverse",
"string.dump", "string.lower",
"string.find", "string.upper",
"string.match", "string.dump",
"string.gmatch_aux", "string.find",
"string.gmatch", "string.match",
"string.gsub", "string.gmatch_aux",
"string.format", "string.gmatch",
"table.maxn", "string.gsub",
"table.insert", "string.format",
"table.concat", "table.maxn",
"table.sort", "table.insert",
"table.new", "table.concat",
"table.clear", "table.sort",
"io.method.close", "table.new",
"io.method.read", "table.clear",
"io.method.write", "io.method.close",
"io.method.flush", "io.method.read",
"io.method.seek", "io.method.write",
"io.method.setvbuf", "io.method.flush",
"io.method.lines", "io.method.seek",
"io.method.__gc", "io.method.setvbuf",
"io.method.__tostring", "io.method.lines",
"io.open", "io.method.__gc",
"io.popen", "io.method.__tostring",
"io.tmpfile", "io.open",
"io.close", "io.popen",
"io.read", "io.tmpfile",
"io.write", "io.close",
"io.flush", "io.read",
"io.input", "io.write",
"io.output", "io.flush",
"io.lines", "io.input",
"io.type", "io.output",
"os.execute", "io.lines",
"os.remove", "io.type",
"os.rename", "os.execute",
"os.tmpname", "os.remove",
"os.getenv", "os.rename",
"os.exit", "os.tmpname",
"os.clock", "os.getenv",
"os.date", "os.exit",
"os.time", "os.clock",
"os.difftime", "os.date",
"os.setlocale", "os.time",
"debug.getregistry", "os.difftime",
"debug.getmetatable", "os.setlocale",
"debug.setmetatable", "debug.getregistry",
"debug.getfenv", "debug.getmetatable",
"debug.setfenv", "debug.setmetatable",
"debug.getinfo", "debug.getfenv",
"debug.getlocal", "debug.setfenv",
"debug.setlocal", "debug.getinfo",
"debug.getupvalue", "debug.getlocal",
"debug.setupvalue", "debug.setlocal",
"debug.upvalueid", "debug.getupvalue",
"debug.upvaluejoin", "debug.setupvalue",
"debug.sethook", "debug.upvalueid",
"debug.gethook", "debug.upvaluejoin",
"debug.debug", "debug.sethook",
"debug.traceback", "debug.gethook",
"jit.on", "debug.debug",
"jit.off", "debug.traceback",
"jit.flush", "jit.on",
"jit.status", "jit.off",
"jit.security", "jit.flush",
"jit.attach", "jit.status",
"jit.util.funcinfo", "jit.security",
"jit.util.funcbc", "jit.attach",
"jit.util.funck", "jit.util.funcinfo",
"jit.util.funcuvname", "jit.util.funcbc",
"jit.util.traceinfo", "jit.util.funck",
"jit.util.traceir", "jit.util.funcuvname",
"jit.util.tracek", "jit.util.traceinfo",
"jit.util.tracesnap", "jit.util.traceir",
"jit.util.tracemc", "jit.util.tracek",
"jit.util.traceexitstub", "jit.util.tracesnap",
"jit.util.ircalladdr", "jit.util.tracemc",
"jit.opt.start", "jit.util.traceexitstub",
"jit.profile.start", "jit.util.ircalladdr",
"jit.profile.stop", "jit.opt.start",
"jit.profile.dumpstack", "jit.profile.start",
"ffi.meta.__index", "jit.profile.stop",
"ffi.meta.__newindex", "jit.profile.dumpstack",
"ffi.meta.__eq", "ffi.meta.__index",
"ffi.meta.__len", "ffi.meta.__newindex",
"ffi.meta.__lt", "ffi.meta.__eq",
"ffi.meta.__le", "ffi.meta.__len",
"ffi.meta.__concat", "ffi.meta.__lt",
"ffi.meta.__call", "ffi.meta.__le",
"ffi.meta.__add", "ffi.meta.__concat",
"ffi.meta.__sub", "ffi.meta.__call",
"ffi.meta.__mul", "ffi.meta.__add",
"ffi.meta.__div", "ffi.meta.__sub",
"ffi.meta.__mod", "ffi.meta.__mul",
"ffi.meta.__pow", "ffi.meta.__div",
"ffi.meta.__unm", "ffi.meta.__mod",
"ffi.meta.__tostring", "ffi.meta.__pow",
"ffi.meta.__pairs", "ffi.meta.__unm",
"ffi.meta.__ipairs", "ffi.meta.__tostring",
"ffi.clib.__index", "ffi.meta.__pairs",
"ffi.clib.__newindex", "ffi.meta.__ipairs",
"ffi.clib.__gc", "ffi.clib.__index",
"ffi.callback.free", "ffi.clib.__newindex",
"ffi.callback.set", "ffi.clib.__gc",
"ffi.cdef", "ffi.callback.free",
"ffi.new", "ffi.callback.set",
"ffi.cast", "ffi.cdef",
"ffi.typeof", "ffi.new",
"ffi.typeinfo", "ffi.cast",
"ffi.istype", "ffi.typeof",
"ffi.sizeof", "ffi.typeinfo",
"ffi.alignof", "ffi.istype",
"ffi.offsetof", "ffi.sizeof",
"ffi.errno", "ffi.alignof",
"ffi.string", "ffi.offsetof",
"ffi.copy", "ffi.errno",
"ffi.fill", "ffi.string",
"ffi.abi", "ffi.copy",
"ffi.metatype", "ffi.fill",
"ffi.gc", "ffi.abi",
"ffi.load", "ffi.metatype",
"buffer.method.free", "ffi.gc",
"buffer.method.reset", "ffi.load",
"buffer.method.skip", "buffer.method.free",
"buffer.method.set", "buffer.method.reset",
"buffer.method.put", "buffer.method.skip",
"buffer.method.putf", "buffer.method.set",
"buffer.method.get", "buffer.method.put",
"buffer.method.putcdata", "buffer.method.putf",
"buffer.method.reserve", "buffer.method.get",
"buffer.method.commit", "buffer.method.putcdata",
"buffer.method.ref", "buffer.method.reserve",
"buffer.method.encode", "buffer.method.commit",
"buffer.method.decode", "buffer.method.ref",
"buffer.method.__gc", "buffer.method.encode",
"buffer.method.__tostring", "buffer.method.decode",
"buffer.method.__len", "buffer.method.__gc",
"buffer.new", "buffer.method.__tostring",
"buffer.encode", "buffer.method.__len",
"buffer.decode", "buffer.new",
}, "buffer.encode",
"buffer.decode",
} },
}
@@ -1,7 +1,7 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- LuaJIT profiler zones. -- LuaJIT profiler zones.
-- --
-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Copyright (C) 2005-2023 Mike Pall. All rights reserved.
-- Released under the MIT license. See Copyright Notice in luajit.h -- Released under the MIT license. See Copyright Notice in luajit.h
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- --
Binary file not shown.
@@ -0,0 +1,79 @@
/*
** LuaJIT -- a Just-In-Time Compiler for Lua. https://luajit.org/
**
** Copyright (C) 2005-2023 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 in the Software without restriction, including
** without limitation the rights to use, copy, modify, merge, publish,
** distribute, sublicense, and/or sell copies of the Software, and to
** permit persons to whom the Software is furnished to do so, subject to
** the following conditions:
**
** The above copyright notice and this permission notice shall be
** included in all copies or substantial portions of the Software.
**
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**
** [ MIT license: https://www.opensource.org/licenses/mit-license.php ]
*/
#ifndef _LUAJIT_H
#define _LUAJIT_H
#include "lua.h"
#define LUAJIT_VERSION "LuaJIT 2.1.1700008891"
#define LUAJIT_VERSION_NUM 20199 /* Deprecated. */
#define LUAJIT_VERSION_SYM luaJIT_version_2_1_1700008891
#define LUAJIT_COPYRIGHT "Copyright (C) 2005-2023 Mike Pall"
#define LUAJIT_URL "https://luajit.org/"
/* Modes for luaJIT_setmode. */
#define LUAJIT_MODE_MASK 0x00ff
enum {
LUAJIT_MODE_ENGINE, /* Set mode for whole JIT engine. */
LUAJIT_MODE_DEBUG, /* Set debug mode (idx = level). */
LUAJIT_MODE_FUNC, /* Change mode for a function. */
LUAJIT_MODE_ALLFUNC, /* Recurse into subroutine protos. */
LUAJIT_MODE_ALLSUBFUNC, /* Change only the subroutines. */
LUAJIT_MODE_TRACE, /* Flush a compiled trace. */
LUAJIT_MODE_WRAPCFUNC = 0x10, /* Set wrapper mode for C function calls. */
LUAJIT_MODE_MAX
};
/* Flags or'ed in to the mode. */
#define LUAJIT_MODE_OFF 0x0000 /* Turn feature off. */
#define LUAJIT_MODE_ON 0x0100 /* Turn feature on. */
#define LUAJIT_MODE_FLUSH 0x0200 /* Flush JIT-compiled code. */
/* LuaJIT public C API. */
/* Control the JIT engine. */
LUA_API int luaJIT_setmode(lua_State *L, int idx, int mode);
/* Low-overhead profiling API. */
typedef void (*luaJIT_profile_callback)(void *data, lua_State *L,
int samples, int vmstate);
LUA_API void luaJIT_profile_start(lua_State *L, const char *mode,
luaJIT_profile_callback cb, void *data);
LUA_API void luaJIT_profile_stop(lua_State *L);
LUA_API const char *luaJIT_profile_dumpstack(lua_State *L, const char *fmt,
int depth, size_t *len);
/* Enforce (dynamic) linker error for version mismatches. Call from main. */
LUA_API void LUAJIT_VERSION_SYM(void);
#endif