diff --git a/libs/LuaJIT/android/arm64-v8a/jit/bc.lua b/libs/LuaJIT/android/arm64-v8a/jit/bc.lua index e58a3fef..8d0844c0 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/bc.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/bc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT bytecode listing module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/arm64-v8a/jit/bcsave.lua b/libs/LuaJIT/android/arm64-v8a/jit/bcsave.lua index bc959327..90fe9daf 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/bcsave.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/bcsave.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT module to save/list bytecode. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- @@ -33,6 +33,7 @@ Save LuaJIT bytecode: luajit -b[options] input output -t type Set output file type (default: auto-detect from output name). -a arch Override architecture for object files (default: native). -o os Override OS for object files (default: native). + -F name Override filename (default: input filename). -e chunk Use chunk string as input. -- Stop handling options. - Use stdin as input and/or stdout as output. @@ -49,10 +50,22 @@ local function check(ok, ...) os.exit(1) end -local function readfile(input) +local function readfile(ctx, input) if type(input) == "function" then return input end - if input == "-" then input = nil end - return check(loadfile(input)) + if ctx.filename then + local data + if input == "-" then + data = io.stdin:read("*a") + else + local fp = assert(io.open(input, "rb")) + data = assert(fp:read("*a")) + assert(fp:close()) + end + return check(load(data, ctx.filename)) + else + if input == "-" then input = nil end + return check(loadfile(input)) + end end local function savefile(name, mode) @@ -456,18 +469,18 @@ typedef struct { uint32_t value; } mach_nlist; typedef struct { - uint32_t strx; + int32_t strx; uint8_t type, sect; uint16_t desc; uint64_t value; } mach_nlist_64; typedef struct { - uint32_t magic, nfat_arch; + int32_t magic, nfat_arch; } mach_fat_header; typedef struct { - uint32_t cputype, cpusubtype, offset, size, align; + int32_t cputype, cpusubtype, offset, size, align; } mach_fat_arch; typedef struct { struct { @@ -501,6 +514,18 @@ typedef struct { mach_nlist sym_entry; uint8_t space[4096]; } mach_fat_obj; +typedef struct { + mach_fat_header fat; + mach_fat_arch fat_arch[2]; + struct { + mach_header_64 hdr; + mach_segment_command_64 seg; + mach_section_64 sec; + mach_symtab_command sym; + } arch[2]; + mach_nlist_64 sym_entry; + uint8_t space[4096]; +} mach_fat_obj_64; ]] local symname = '_'..LJBC_PREFIX..ctx.modname local isfat, is64, align, mobj = false, false, 4, "mach_obj" @@ -509,7 +534,7 @@ typedef struct { elseif ctx.arch == "arm" then isfat, mobj = true, "mach_fat_obj" elseif ctx.arch == "arm64" then - is64, align, isfat, mobj = true, 8, true, "mach_fat_obj" + is64, align, isfat, mobj = true, 8, true, "mach_fat_obj_64" else check(ctx.arch == "x86", "unsupported architecture for OSX") end @@ -592,13 +617,13 @@ end ------------------------------------------------------------------------------ -local function bclist(input, output) - local f = readfile(input) +local function bclist(ctx, input, output) + local f = readfile(ctx, input) require("jit.bc").dump(f, savefile(output, "w"), true) end local function bcsave(ctx, input, output) - local f = readfile(input) + local f = readfile(ctx, input) local s = string.dump(f, ctx.strip) local t = ctx.type if not t then @@ -651,6 +676,8 @@ local function docmd(...) ctx.arch = checkarg(tremove(arg, n), map_arch, "architecture") elseif opt == "o" then ctx.os = checkarg(tremove(arg, n), map_os, "OS name") + elseif opt == "F" then + ctx.filename = "@"..tremove(arg, n) else usage() end @@ -662,7 +689,7 @@ local function docmd(...) end if list then if #arg == 0 or #arg > 2 then usage() end - bclist(arg[1], arg[2] or "-") + bclist(ctx, arg[1], arg[2] or "-") else if #arg ~= 2 then usage() end bcsave(ctx, arg[1], arg[2]) diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_arm.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_arm.lua index ba79c47e..18ab68df 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_arm.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_arm.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_arm64.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_arm64.lua index ad909fbd..531584a1 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_arm64.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_arm64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM64 disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h -- -- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com. diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_arm64be.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_arm64be.lua index edcbffa8..7337f5b7 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_arm64be.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_arm64be.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM64BE disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- ARM64 instructions are always little-endian. So just forward to the diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips.lua index 6ad17f54..05dc30fd 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64.lua index 5ad48f8f..1236e524 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the big-endian functions from the diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64el.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64el.lua index d50e3a18..7c478d2d 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64el.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64el.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64EL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the little-endian functions from the diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64r6.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64r6.lua index 921b3cbe..c5789ce4 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64r6.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64r6.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64R6 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the r6 big-endian functions from the diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64r6el.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64r6el.lua index aadef9f3..f67f6240 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64r6el.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_mips64r6el.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64R6EL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the r6 little-endian functions from the diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_mipsel.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_mipsel.lua index 52cebefb..a4fa6c60 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_mipsel.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_mipsel.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPSEL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the little-endian functions from the diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_ppc.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_ppc.lua index 08d742f1..8f65f25a 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_ppc.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_ppc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT PPC disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_x64.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_x64.lua index 2d37423e..d076c6ae 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_x64.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_x64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x64 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the 64 bit functions from the combined diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dis_x86.lua b/libs/LuaJIT/android/arm64-v8a/jit/dis_x86.lua index 5480854c..84492fff 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dis_x86.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dis_x86.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x86/x64 disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/arm64-v8a/jit/dump.lua b/libs/LuaJIT/android/arm64-v8a/jit/dump.lua index 9eda08c4..18e7a4b7 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/dump.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/dump.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT compiler dump module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/arm64-v8a/jit/p.lua b/libs/LuaJIT/android/arm64-v8a/jit/p.lua index c9ec1d8b..f225c312 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/p.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/p.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT profiler. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/arm64-v8a/jit/v.lua b/libs/LuaJIT/android/arm64-v8a/jit/v.lua index 83589143..ac8b19db 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/v.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/v.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- Verbose mode of the LuaJIT compiler. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/arm64-v8a/jit/vmdef.lua b/libs/LuaJIT/android/arm64-v8a/jit/vmdef.lua index 68ff7ba2..9ed150be 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/vmdef.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/vmdef.lua @@ -76,7 +76,6 @@ ircall = { "sqrt", "log", "lj_vm_log2", -"lj_vm_powi", "pow", "atan2", "ldexp", diff --git a/libs/LuaJIT/android/arm64-v8a/jit/zone.lua b/libs/LuaJIT/android/arm64-v8a/jit/zone.lua index 94357854..1308cb74 100644 --- a/libs/LuaJIT/android/arm64-v8a/jit/zone.lua +++ b/libs/LuaJIT/android/arm64-v8a/jit/zone.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT profiler zones. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/arm64-v8a/libluajit.a b/libs/LuaJIT/android/arm64-v8a/libluajit.a index 8ec8174b..97ccad21 100644 Binary files a/libs/LuaJIT/android/arm64-v8a/libluajit.a and b/libs/LuaJIT/android/arm64-v8a/libluajit.a differ diff --git a/libs/LuaJIT/android/arm64-v8a/libluajit.so b/libs/LuaJIT/android/arm64-v8a/libluajit.so index 857e48ce..1f679ad1 100644 Binary files a/libs/LuaJIT/android/arm64-v8a/libluajit.so and b/libs/LuaJIT/android/arm64-v8a/libluajit.so differ diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/bc.lua b/libs/LuaJIT/android/armeabi-v7a/jit/bc.lua index e58a3fef..8d0844c0 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/bc.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/bc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT bytecode listing module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/bcsave.lua b/libs/LuaJIT/android/armeabi-v7a/jit/bcsave.lua index bc959327..90fe9daf 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/bcsave.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/bcsave.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT module to save/list bytecode. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- @@ -33,6 +33,7 @@ Save LuaJIT bytecode: luajit -b[options] input output -t type Set output file type (default: auto-detect from output name). -a arch Override architecture for object files (default: native). -o os Override OS for object files (default: native). + -F name Override filename (default: input filename). -e chunk Use chunk string as input. -- Stop handling options. - Use stdin as input and/or stdout as output. @@ -49,10 +50,22 @@ local function check(ok, ...) os.exit(1) end -local function readfile(input) +local function readfile(ctx, input) if type(input) == "function" then return input end - if input == "-" then input = nil end - return check(loadfile(input)) + if ctx.filename then + local data + if input == "-" then + data = io.stdin:read("*a") + else + local fp = assert(io.open(input, "rb")) + data = assert(fp:read("*a")) + assert(fp:close()) + end + return check(load(data, ctx.filename)) + else + if input == "-" then input = nil end + return check(loadfile(input)) + end end local function savefile(name, mode) @@ -456,18 +469,18 @@ typedef struct { uint32_t value; } mach_nlist; typedef struct { - uint32_t strx; + int32_t strx; uint8_t type, sect; uint16_t desc; uint64_t value; } mach_nlist_64; typedef struct { - uint32_t magic, nfat_arch; + int32_t magic, nfat_arch; } mach_fat_header; typedef struct { - uint32_t cputype, cpusubtype, offset, size, align; + int32_t cputype, cpusubtype, offset, size, align; } mach_fat_arch; typedef struct { struct { @@ -501,6 +514,18 @@ typedef struct { mach_nlist sym_entry; uint8_t space[4096]; } mach_fat_obj; +typedef struct { + mach_fat_header fat; + mach_fat_arch fat_arch[2]; + struct { + mach_header_64 hdr; + mach_segment_command_64 seg; + mach_section_64 sec; + mach_symtab_command sym; + } arch[2]; + mach_nlist_64 sym_entry; + uint8_t space[4096]; +} mach_fat_obj_64; ]] local symname = '_'..LJBC_PREFIX..ctx.modname local isfat, is64, align, mobj = false, false, 4, "mach_obj" @@ -509,7 +534,7 @@ typedef struct { elseif ctx.arch == "arm" then isfat, mobj = true, "mach_fat_obj" elseif ctx.arch == "arm64" then - is64, align, isfat, mobj = true, 8, true, "mach_fat_obj" + is64, align, isfat, mobj = true, 8, true, "mach_fat_obj_64" else check(ctx.arch == "x86", "unsupported architecture for OSX") end @@ -592,13 +617,13 @@ end ------------------------------------------------------------------------------ -local function bclist(input, output) - local f = readfile(input) +local function bclist(ctx, input, output) + local f = readfile(ctx, input) require("jit.bc").dump(f, savefile(output, "w"), true) end local function bcsave(ctx, input, output) - local f = readfile(input) + local f = readfile(ctx, input) local s = string.dump(f, ctx.strip) local t = ctx.type if not t then @@ -651,6 +676,8 @@ local function docmd(...) ctx.arch = checkarg(tremove(arg, n), map_arch, "architecture") elseif opt == "o" then ctx.os = checkarg(tremove(arg, n), map_os, "OS name") + elseif opt == "F" then + ctx.filename = "@"..tremove(arg, n) else usage() end @@ -662,7 +689,7 @@ local function docmd(...) end if list then if #arg == 0 or #arg > 2 then usage() end - bclist(arg[1], arg[2] or "-") + bclist(ctx, arg[1], arg[2] or "-") else if #arg ~= 2 then usage() end bcsave(ctx, arg[1], arg[2]) diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm.lua index ba79c47e..18ab68df 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm64.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm64.lua index ad909fbd..531584a1 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm64.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM64 disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h -- -- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com. diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm64be.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm64be.lua index edcbffa8..7337f5b7 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm64be.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_arm64be.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM64BE disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- ARM64 instructions are always little-endian. So just forward to the diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips.lua index 6ad17f54..05dc30fd 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64.lua index 5ad48f8f..1236e524 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the big-endian functions from the diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64el.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64el.lua index d50e3a18..7c478d2d 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64el.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64el.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64EL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the little-endian functions from the diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64r6.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64r6.lua index 921b3cbe..c5789ce4 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64r6.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64r6.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64R6 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the r6 big-endian functions from the diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64r6el.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64r6el.lua index aadef9f3..f67f6240 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64r6el.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mips64r6el.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64R6EL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the r6 little-endian functions from the diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mipsel.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mipsel.lua index 52cebefb..a4fa6c60 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_mipsel.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_mipsel.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPSEL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the little-endian functions from the diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_ppc.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_ppc.lua index 08d742f1..8f65f25a 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_ppc.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_ppc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT PPC disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_x64.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_x64.lua index 2d37423e..d076c6ae 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_x64.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_x64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x64 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the 64 bit functions from the combined diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dis_x86.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dis_x86.lua index 5480854c..84492fff 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dis_x86.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dis_x86.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x86/x64 disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/dump.lua b/libs/LuaJIT/android/armeabi-v7a/jit/dump.lua index 9eda08c4..18e7a4b7 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/dump.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/dump.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT compiler dump module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/p.lua b/libs/LuaJIT/android/armeabi-v7a/jit/p.lua index c9ec1d8b..f225c312 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/p.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/p.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT profiler. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/v.lua b/libs/LuaJIT/android/armeabi-v7a/jit/v.lua index 83589143..ac8b19db 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/v.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/v.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- Verbose mode of the LuaJIT compiler. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/vmdef.lua b/libs/LuaJIT/android/armeabi-v7a/jit/vmdef.lua index 68ff7ba2..9ed150be 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/vmdef.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/vmdef.lua @@ -76,7 +76,6 @@ ircall = { "sqrt", "log", "lj_vm_log2", -"lj_vm_powi", "pow", "atan2", "ldexp", diff --git a/libs/LuaJIT/android/armeabi-v7a/jit/zone.lua b/libs/LuaJIT/android/armeabi-v7a/jit/zone.lua index 94357854..1308cb74 100644 --- a/libs/LuaJIT/android/armeabi-v7a/jit/zone.lua +++ b/libs/LuaJIT/android/armeabi-v7a/jit/zone.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT profiler zones. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/armeabi-v7a/libluajit.a b/libs/LuaJIT/android/armeabi-v7a/libluajit.a index 4f3ddbc7..b3b0c93f 100644 Binary files a/libs/LuaJIT/android/armeabi-v7a/libluajit.a and b/libs/LuaJIT/android/armeabi-v7a/libluajit.a differ diff --git a/libs/LuaJIT/android/armeabi-v7a/libluajit.so b/libs/LuaJIT/android/armeabi-v7a/libluajit.so index cb657c1c..03949a64 100644 Binary files a/libs/LuaJIT/android/armeabi-v7a/libluajit.so and b/libs/LuaJIT/android/armeabi-v7a/libluajit.so differ diff --git a/libs/LuaJIT/android/x86/jit/bc.lua b/libs/LuaJIT/android/x86/jit/bc.lua index e58a3fef..8d0844c0 100644 --- a/libs/LuaJIT/android/x86/jit/bc.lua +++ b/libs/LuaJIT/android/x86/jit/bc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT bytecode listing module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86/jit/bcsave.lua b/libs/LuaJIT/android/x86/jit/bcsave.lua index bc959327..90fe9daf 100644 --- a/libs/LuaJIT/android/x86/jit/bcsave.lua +++ b/libs/LuaJIT/android/x86/jit/bcsave.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT module to save/list bytecode. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- @@ -33,6 +33,7 @@ Save LuaJIT bytecode: luajit -b[options] input output -t type Set output file type (default: auto-detect from output name). -a arch Override architecture for object files (default: native). -o os Override OS for object files (default: native). + -F name Override filename (default: input filename). -e chunk Use chunk string as input. -- Stop handling options. - Use stdin as input and/or stdout as output. @@ -49,10 +50,22 @@ local function check(ok, ...) os.exit(1) end -local function readfile(input) +local function readfile(ctx, input) if type(input) == "function" then return input end - if input == "-" then input = nil end - return check(loadfile(input)) + if ctx.filename then + local data + if input == "-" then + data = io.stdin:read("*a") + else + local fp = assert(io.open(input, "rb")) + data = assert(fp:read("*a")) + assert(fp:close()) + end + return check(load(data, ctx.filename)) + else + if input == "-" then input = nil end + return check(loadfile(input)) + end end local function savefile(name, mode) @@ -456,18 +469,18 @@ typedef struct { uint32_t value; } mach_nlist; typedef struct { - uint32_t strx; + int32_t strx; uint8_t type, sect; uint16_t desc; uint64_t value; } mach_nlist_64; typedef struct { - uint32_t magic, nfat_arch; + int32_t magic, nfat_arch; } mach_fat_header; typedef struct { - uint32_t cputype, cpusubtype, offset, size, align; + int32_t cputype, cpusubtype, offset, size, align; } mach_fat_arch; typedef struct { struct { @@ -501,6 +514,18 @@ typedef struct { mach_nlist sym_entry; uint8_t space[4096]; } mach_fat_obj; +typedef struct { + mach_fat_header fat; + mach_fat_arch fat_arch[2]; + struct { + mach_header_64 hdr; + mach_segment_command_64 seg; + mach_section_64 sec; + mach_symtab_command sym; + } arch[2]; + mach_nlist_64 sym_entry; + uint8_t space[4096]; +} mach_fat_obj_64; ]] local symname = '_'..LJBC_PREFIX..ctx.modname local isfat, is64, align, mobj = false, false, 4, "mach_obj" @@ -509,7 +534,7 @@ typedef struct { elseif ctx.arch == "arm" then isfat, mobj = true, "mach_fat_obj" elseif ctx.arch == "arm64" then - is64, align, isfat, mobj = true, 8, true, "mach_fat_obj" + is64, align, isfat, mobj = true, 8, true, "mach_fat_obj_64" else check(ctx.arch == "x86", "unsupported architecture for OSX") end @@ -592,13 +617,13 @@ end ------------------------------------------------------------------------------ -local function bclist(input, output) - local f = readfile(input) +local function bclist(ctx, input, output) + local f = readfile(ctx, input) require("jit.bc").dump(f, savefile(output, "w"), true) end local function bcsave(ctx, input, output) - local f = readfile(input) + local f = readfile(ctx, input) local s = string.dump(f, ctx.strip) local t = ctx.type if not t then @@ -651,6 +676,8 @@ local function docmd(...) ctx.arch = checkarg(tremove(arg, n), map_arch, "architecture") elseif opt == "o" then ctx.os = checkarg(tremove(arg, n), map_os, "OS name") + elseif opt == "F" then + ctx.filename = "@"..tremove(arg, n) else usage() end @@ -662,7 +689,7 @@ local function docmd(...) end if list then if #arg == 0 or #arg > 2 then usage() end - bclist(arg[1], arg[2] or "-") + bclist(ctx, arg[1], arg[2] or "-") else if #arg ~= 2 then usage() end bcsave(ctx, arg[1], arg[2]) diff --git a/libs/LuaJIT/android/x86/jit/dis_arm.lua b/libs/LuaJIT/android/x86/jit/dis_arm.lua index ba79c47e..18ab68df 100644 --- a/libs/LuaJIT/android/x86/jit/dis_arm.lua +++ b/libs/LuaJIT/android/x86/jit/dis_arm.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/x86/jit/dis_arm64.lua b/libs/LuaJIT/android/x86/jit/dis_arm64.lua index ad909fbd..531584a1 100644 --- a/libs/LuaJIT/android/x86/jit/dis_arm64.lua +++ b/libs/LuaJIT/android/x86/jit/dis_arm64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM64 disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h -- -- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com. diff --git a/libs/LuaJIT/android/x86/jit/dis_arm64be.lua b/libs/LuaJIT/android/x86/jit/dis_arm64be.lua index edcbffa8..7337f5b7 100644 --- a/libs/LuaJIT/android/x86/jit/dis_arm64be.lua +++ b/libs/LuaJIT/android/x86/jit/dis_arm64be.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM64BE disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- ARM64 instructions are always little-endian. So just forward to the diff --git a/libs/LuaJIT/android/x86/jit/dis_mips.lua b/libs/LuaJIT/android/x86/jit/dis_mips.lua index 6ad17f54..05dc30fd 100644 --- a/libs/LuaJIT/android/x86/jit/dis_mips.lua +++ b/libs/LuaJIT/android/x86/jit/dis_mips.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/x86/jit/dis_mips64.lua b/libs/LuaJIT/android/x86/jit/dis_mips64.lua index 5ad48f8f..1236e524 100644 --- a/libs/LuaJIT/android/x86/jit/dis_mips64.lua +++ b/libs/LuaJIT/android/x86/jit/dis_mips64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the big-endian functions from the diff --git a/libs/LuaJIT/android/x86/jit/dis_mips64el.lua b/libs/LuaJIT/android/x86/jit/dis_mips64el.lua index d50e3a18..7c478d2d 100644 --- a/libs/LuaJIT/android/x86/jit/dis_mips64el.lua +++ b/libs/LuaJIT/android/x86/jit/dis_mips64el.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64EL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the little-endian functions from the diff --git a/libs/LuaJIT/android/x86/jit/dis_mips64r6.lua b/libs/LuaJIT/android/x86/jit/dis_mips64r6.lua index 921b3cbe..c5789ce4 100644 --- a/libs/LuaJIT/android/x86/jit/dis_mips64r6.lua +++ b/libs/LuaJIT/android/x86/jit/dis_mips64r6.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64R6 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the r6 big-endian functions from the diff --git a/libs/LuaJIT/android/x86/jit/dis_mips64r6el.lua b/libs/LuaJIT/android/x86/jit/dis_mips64r6el.lua index aadef9f3..f67f6240 100644 --- a/libs/LuaJIT/android/x86/jit/dis_mips64r6el.lua +++ b/libs/LuaJIT/android/x86/jit/dis_mips64r6el.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64R6EL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the r6 little-endian functions from the diff --git a/libs/LuaJIT/android/x86/jit/dis_mipsel.lua b/libs/LuaJIT/android/x86/jit/dis_mipsel.lua index 52cebefb..a4fa6c60 100644 --- a/libs/LuaJIT/android/x86/jit/dis_mipsel.lua +++ b/libs/LuaJIT/android/x86/jit/dis_mipsel.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPSEL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the little-endian functions from the diff --git a/libs/LuaJIT/android/x86/jit/dis_ppc.lua b/libs/LuaJIT/android/x86/jit/dis_ppc.lua index 08d742f1..8f65f25a 100644 --- a/libs/LuaJIT/android/x86/jit/dis_ppc.lua +++ b/libs/LuaJIT/android/x86/jit/dis_ppc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT PPC disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/x86/jit/dis_x64.lua b/libs/LuaJIT/android/x86/jit/dis_x64.lua index 2d37423e..d076c6ae 100644 --- a/libs/LuaJIT/android/x86/jit/dis_x64.lua +++ b/libs/LuaJIT/android/x86/jit/dis_x64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x64 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the 64 bit functions from the combined diff --git a/libs/LuaJIT/android/x86/jit/dis_x86.lua b/libs/LuaJIT/android/x86/jit/dis_x86.lua index 5480854c..84492fff 100644 --- a/libs/LuaJIT/android/x86/jit/dis_x86.lua +++ b/libs/LuaJIT/android/x86/jit/dis_x86.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x86/x64 disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/x86/jit/dump.lua b/libs/LuaJIT/android/x86/jit/dump.lua index 9eda08c4..18e7a4b7 100644 --- a/libs/LuaJIT/android/x86/jit/dump.lua +++ b/libs/LuaJIT/android/x86/jit/dump.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT compiler dump module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86/jit/p.lua b/libs/LuaJIT/android/x86/jit/p.lua index c9ec1d8b..f225c312 100644 --- a/libs/LuaJIT/android/x86/jit/p.lua +++ b/libs/LuaJIT/android/x86/jit/p.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT profiler. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86/jit/v.lua b/libs/LuaJIT/android/x86/jit/v.lua index 83589143..ac8b19db 100644 --- a/libs/LuaJIT/android/x86/jit/v.lua +++ b/libs/LuaJIT/android/x86/jit/v.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- Verbose mode of the LuaJIT compiler. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86/jit/vmdef.lua b/libs/LuaJIT/android/x86/jit/vmdef.lua index 68ff7ba2..9ed150be 100644 --- a/libs/LuaJIT/android/x86/jit/vmdef.lua +++ b/libs/LuaJIT/android/x86/jit/vmdef.lua @@ -76,7 +76,6 @@ ircall = { "sqrt", "log", "lj_vm_log2", -"lj_vm_powi", "pow", "atan2", "ldexp", diff --git a/libs/LuaJIT/android/x86/jit/zone.lua b/libs/LuaJIT/android/x86/jit/zone.lua index 94357854..1308cb74 100644 --- a/libs/LuaJIT/android/x86/jit/zone.lua +++ b/libs/LuaJIT/android/x86/jit/zone.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT profiler zones. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86/libluajit.a b/libs/LuaJIT/android/x86/libluajit.a index 20c73d78..c6fad0d9 100644 Binary files a/libs/LuaJIT/android/x86/libluajit.a and b/libs/LuaJIT/android/x86/libluajit.a differ diff --git a/libs/LuaJIT/android/x86/libluajit.so b/libs/LuaJIT/android/x86/libluajit.so index 2b496baa..2aa80ed3 100644 Binary files a/libs/LuaJIT/android/x86/libluajit.so and b/libs/LuaJIT/android/x86/libluajit.so differ diff --git a/libs/LuaJIT/android/x86_64/jit/bc.lua b/libs/LuaJIT/android/x86_64/jit/bc.lua index e58a3fef..8d0844c0 100644 --- a/libs/LuaJIT/android/x86_64/jit/bc.lua +++ b/libs/LuaJIT/android/x86_64/jit/bc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT bytecode listing module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86_64/jit/bcsave.lua b/libs/LuaJIT/android/x86_64/jit/bcsave.lua index bc959327..90fe9daf 100644 --- a/libs/LuaJIT/android/x86_64/jit/bcsave.lua +++ b/libs/LuaJIT/android/x86_64/jit/bcsave.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT module to save/list bytecode. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- @@ -33,6 +33,7 @@ Save LuaJIT bytecode: luajit -b[options] input output -t type Set output file type (default: auto-detect from output name). -a arch Override architecture for object files (default: native). -o os Override OS for object files (default: native). + -F name Override filename (default: input filename). -e chunk Use chunk string as input. -- Stop handling options. - Use stdin as input and/or stdout as output. @@ -49,10 +50,22 @@ local function check(ok, ...) os.exit(1) end -local function readfile(input) +local function readfile(ctx, input) if type(input) == "function" then return input end - if input == "-" then input = nil end - return check(loadfile(input)) + if ctx.filename then + local data + if input == "-" then + data = io.stdin:read("*a") + else + local fp = assert(io.open(input, "rb")) + data = assert(fp:read("*a")) + assert(fp:close()) + end + return check(load(data, ctx.filename)) + else + if input == "-" then input = nil end + return check(loadfile(input)) + end end local function savefile(name, mode) @@ -456,18 +469,18 @@ typedef struct { uint32_t value; } mach_nlist; typedef struct { - uint32_t strx; + int32_t strx; uint8_t type, sect; uint16_t desc; uint64_t value; } mach_nlist_64; typedef struct { - uint32_t magic, nfat_arch; + int32_t magic, nfat_arch; } mach_fat_header; typedef struct { - uint32_t cputype, cpusubtype, offset, size, align; + int32_t cputype, cpusubtype, offset, size, align; } mach_fat_arch; typedef struct { struct { @@ -501,6 +514,18 @@ typedef struct { mach_nlist sym_entry; uint8_t space[4096]; } mach_fat_obj; +typedef struct { + mach_fat_header fat; + mach_fat_arch fat_arch[2]; + struct { + mach_header_64 hdr; + mach_segment_command_64 seg; + mach_section_64 sec; + mach_symtab_command sym; + } arch[2]; + mach_nlist_64 sym_entry; + uint8_t space[4096]; +} mach_fat_obj_64; ]] local symname = '_'..LJBC_PREFIX..ctx.modname local isfat, is64, align, mobj = false, false, 4, "mach_obj" @@ -509,7 +534,7 @@ typedef struct { elseif ctx.arch == "arm" then isfat, mobj = true, "mach_fat_obj" elseif ctx.arch == "arm64" then - is64, align, isfat, mobj = true, 8, true, "mach_fat_obj" + is64, align, isfat, mobj = true, 8, true, "mach_fat_obj_64" else check(ctx.arch == "x86", "unsupported architecture for OSX") end @@ -592,13 +617,13 @@ end ------------------------------------------------------------------------------ -local function bclist(input, output) - local f = readfile(input) +local function bclist(ctx, input, output) + local f = readfile(ctx, input) require("jit.bc").dump(f, savefile(output, "w"), true) end local function bcsave(ctx, input, output) - local f = readfile(input) + local f = readfile(ctx, input) local s = string.dump(f, ctx.strip) local t = ctx.type if not t then @@ -651,6 +676,8 @@ local function docmd(...) ctx.arch = checkarg(tremove(arg, n), map_arch, "architecture") elseif opt == "o" then ctx.os = checkarg(tremove(arg, n), map_os, "OS name") + elseif opt == "F" then + ctx.filename = "@"..tremove(arg, n) else usage() end @@ -662,7 +689,7 @@ local function docmd(...) end if list then if #arg == 0 or #arg > 2 then usage() end - bclist(arg[1], arg[2] or "-") + bclist(ctx, arg[1], arg[2] or "-") else if #arg ~= 2 then usage() end bcsave(ctx, arg[1], arg[2]) diff --git a/libs/LuaJIT/android/x86_64/jit/dis_arm.lua b/libs/LuaJIT/android/x86_64/jit/dis_arm.lua index ba79c47e..18ab68df 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_arm.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_arm.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/x86_64/jit/dis_arm64.lua b/libs/LuaJIT/android/x86_64/jit/dis_arm64.lua index ad909fbd..531584a1 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_arm64.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_arm64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM64 disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h -- -- Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com. diff --git a/libs/LuaJIT/android/x86_64/jit/dis_arm64be.lua b/libs/LuaJIT/android/x86_64/jit/dis_arm64be.lua index edcbffa8..7337f5b7 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_arm64be.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_arm64be.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM64BE disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- ARM64 instructions are always little-endian. So just forward to the diff --git a/libs/LuaJIT/android/x86_64/jit/dis_mips.lua b/libs/LuaJIT/android/x86_64/jit/dis_mips.lua index 6ad17f54..05dc30fd 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_mips.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_mips.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/x86_64/jit/dis_mips64.lua b/libs/LuaJIT/android/x86_64/jit/dis_mips64.lua index 5ad48f8f..1236e524 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_mips64.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_mips64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the big-endian functions from the diff --git a/libs/LuaJIT/android/x86_64/jit/dis_mips64el.lua b/libs/LuaJIT/android/x86_64/jit/dis_mips64el.lua index d50e3a18..7c478d2d 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_mips64el.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_mips64el.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64EL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the little-endian functions from the diff --git a/libs/LuaJIT/android/x86_64/jit/dis_mips64r6.lua b/libs/LuaJIT/android/x86_64/jit/dis_mips64r6.lua index 921b3cbe..c5789ce4 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_mips64r6.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_mips64r6.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64R6 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the r6 big-endian functions from the diff --git a/libs/LuaJIT/android/x86_64/jit/dis_mips64r6el.lua b/libs/LuaJIT/android/x86_64/jit/dis_mips64r6el.lua index aadef9f3..f67f6240 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_mips64r6el.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_mips64r6el.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS64R6EL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the r6 little-endian functions from the diff --git a/libs/LuaJIT/android/x86_64/jit/dis_mipsel.lua b/libs/LuaJIT/android/x86_64/jit/dis_mipsel.lua index 52cebefb..a4fa6c60 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_mipsel.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_mipsel.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPSEL disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the little-endian functions from the diff --git a/libs/LuaJIT/android/x86_64/jit/dis_ppc.lua b/libs/LuaJIT/android/x86_64/jit/dis_ppc.lua index 08d742f1..8f65f25a 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_ppc.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_ppc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT PPC disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/x86_64/jit/dis_x64.lua b/libs/LuaJIT/android/x86_64/jit/dis_x64.lua index 2d37423e..d076c6ae 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_x64.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_x64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x64 disassembler wrapper module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the 64 bit functions from the combined diff --git a/libs/LuaJIT/android/x86_64/jit/dis_x86.lua b/libs/LuaJIT/android/x86_64/jit/dis_x86.lua index 5480854c..84492fff 100644 --- a/libs/LuaJIT/android/x86_64/jit/dis_x86.lua +++ b/libs/LuaJIT/android/x86_64/jit/dis_x86.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x86/x64 disassembler module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/libs/LuaJIT/android/x86_64/jit/dump.lua b/libs/LuaJIT/android/x86_64/jit/dump.lua index 9eda08c4..18e7a4b7 100644 --- a/libs/LuaJIT/android/x86_64/jit/dump.lua +++ b/libs/LuaJIT/android/x86_64/jit/dump.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT compiler dump module. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86_64/jit/p.lua b/libs/LuaJIT/android/x86_64/jit/p.lua index c9ec1d8b..f225c312 100644 --- a/libs/LuaJIT/android/x86_64/jit/p.lua +++ b/libs/LuaJIT/android/x86_64/jit/p.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT profiler. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86_64/jit/v.lua b/libs/LuaJIT/android/x86_64/jit/v.lua index 83589143..ac8b19db 100644 --- a/libs/LuaJIT/android/x86_64/jit/v.lua +++ b/libs/LuaJIT/android/x86_64/jit/v.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- Verbose mode of the LuaJIT compiler. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86_64/jit/vmdef.lua b/libs/LuaJIT/android/x86_64/jit/vmdef.lua index 68ff7ba2..9ed150be 100644 --- a/libs/LuaJIT/android/x86_64/jit/vmdef.lua +++ b/libs/LuaJIT/android/x86_64/jit/vmdef.lua @@ -76,7 +76,6 @@ ircall = { "sqrt", "log", "lj_vm_log2", -"lj_vm_powi", "pow", "atan2", "ldexp", diff --git a/libs/LuaJIT/android/x86_64/jit/zone.lua b/libs/LuaJIT/android/x86_64/jit/zone.lua index 94357854..1308cb74 100644 --- a/libs/LuaJIT/android/x86_64/jit/zone.lua +++ b/libs/LuaJIT/android/x86_64/jit/zone.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT profiler zones. -- --- Copyright (C) 2005-2021 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2022 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- diff --git a/libs/LuaJIT/android/x86_64/libluajit.a b/libs/LuaJIT/android/x86_64/libluajit.a index 5e9ed4bb..55c1af88 100644 Binary files a/libs/LuaJIT/android/x86_64/libluajit.a and b/libs/LuaJIT/android/x86_64/libluajit.a differ diff --git a/libs/LuaJIT/android/x86_64/libluajit.so b/libs/LuaJIT/android/x86_64/libluajit.so index a5a43a4a..8ac12822 100644 Binary files a/libs/LuaJIT/android/x86_64/libluajit.so and b/libs/LuaJIT/android/x86_64/libluajit.so differ