fsfod
ede73f2226
Fixed LJ_GC64 builds breaking intrinsic interpreter wrappers in various ways.
...
Fix wrappers truncating GCobj pointers in GC64 mode when loading them from the stack to store output registers in to cdata.
Fix the stack for intrinsics not being adjusted correctly in there interpreter wrapper when it uses the RID_DISPATCH register on GC64 because RSET_GPR does not contain it
2019-12-08 21:36:38 +00:00
fsfod
cb3c483264
Don't allow stitching to defeat our black listing of the loop in jit_tester
2019-12-08 21:36:38 +00:00
fsfod
96f1f83bc3
Wip Intrinsic documentation
2019-12-08 21:36:38 +00:00
fsfod
4eaf7f6efe
Fix store opcodes with dynamic destructive out register not being correctly allocated an input register
2019-12-08 21:36:38 +00:00
fsfod
748091cfd9
CSE support for intrinsics only enabled for single value returning intrinsics that have no side effects and are not forced indirect ModRM which could be a load or store
2019-12-08 21:36:38 +00:00
fsfod
befcdc6e55
Added VEX opcode support for intrinsics
2019-12-08 21:36:38 +00:00
fsfod
239f8ad3e6
Added a JIT flag for AVX1 support
2019-12-08 21:36:38 +00:00
fsfod
a374e90531
Added a flag(s) for opcodes with non memory store side effects and enabled DCE of intrinsics
...
Intrinsics are now assumed to have no side effects unless flagged to with either memory side effects(S) or non memory side effects(s)
2019-12-08 21:36:38 +00:00
fsfod
275d0dcdd7
Treat IR_INTRN as potential load with respect to DSE
2019-12-08 21:36:38 +00:00
fsfod
f7331e9464
Added JIT support for intrinsics. Support for vector registers is NYI.
2019-12-08 21:36:38 +00:00
fsfod
57ff67552a
Added support for 4 byte opcode intrinsics
2019-12-08 21:36:38 +00:00
fsfod
7c697b0a5c
Extended emit_op to support 4 byte opcodes based on checking a new flag OP4B in rr
2019-12-08 21:36:38 +00:00
fsfod
de4c0b6ea5
Implement support for opcodes with dynamic registers
2019-12-08 21:36:38 +00:00
fsfod
e6fecee925
Added support for casting vectors to a pointer when using lj_cconv_ct_tv by using a special cast flag(CCF_INTRINS_ARG) for intrinsic vector arguments
2019-12-08 21:36:37 +00:00
fsfod
f21526df9b
Added support for ymm registers in intrinsics
2019-12-08 21:36:37 +00:00
fsfod
c0797d346b
Extended op_emit to support 2 byte vex opcodes and optionally expand to 3 byte form if needed
2019-12-08 21:36:37 +00:00
fsfod
e1a1721ae2
Template intrinsics user machine code
2019-12-08 21:36:37 +00:00
fsfod
c84b176062
Initial support for intrinsics on x86/x64 interpreter only
2019-12-08 21:36:37 +00:00
fsfod
235ab3bf6f
Added support for separate mcode areas
2019-12-08 21:36:37 +00:00
Mike Pall
bd00094c3b
x64: Enable LJ_GC64 mode by default.
2019-12-08 21:21:30 +01:00
Mike Pall
70f4b15ee4
FFI: Eliminate hardcoded string hashes.
2019-12-08 20:53:31 +01:00
Mike Pall
92fa45f9eb
Fix interaction between profiler hooks and finalizers.
...
Thanks to Julien Desgats.
2019-12-08 19:56:56 +01:00
Mike Pall
9600e4318e
Don't use STRREF for pointer diff in string.find().
...
Thanks to Sergey Ostanevich and Vyacheslav Egorov.
2019-12-08 19:54:21 +01:00
Mike Pall
2a7c200dc2
Merge branch 'master' into v2.1
2019-12-08 19:52:56 +01:00
Mike Pall
45a7e5073c
Fix tonumber("-0").
...
Reported by bluecheetah001.
2019-12-08 19:51:33 +01:00
Mike Pall
1d9a337de6
Merge branch 'master' into v2.1
2019-12-08 19:50:36 +01:00
Mike Pall
de48d00094
Fix hash table chaining (again).
...
Thanks to Peter Cawley.
2019-12-08 19:47:00 +01:00
Mike Pall
324aef08d9
Typo.
2019-12-08 19:45:07 +01:00
Mike Pall
41a25efc80
Fix declarations of _BitScanForward/_BitScanReverse.
...
Reported by Mumin Guler.
2019-12-08 19:42:49 +01:00
Mike Pall
46a1b268eb
Add stricter check for print() vs. tostring() shortcut.
2019-12-08 19:40:24 +01:00
Mike Pall
16e5605eec
Prevent integer overflow while parsing long strings.
2019-12-08 19:35:25 +01:00
Mike Pall
e0388e6c00
Fix stack check when recording BC_VARG.
...
Contributed by Yichun Zhang.
2019-12-08 19:32:27 +01:00
Mike Pall
1d1bac5a65
FFI: Add missing write barrier on C library index update.
...
Contributed by Yichun Zhang.
2019-12-08 19:32:16 +01:00
Mike Pall
478bcfe52a
FFI: Workaround for platform dlerror() returning NULL.
...
Contributed by mcclure.
2019-12-08 19:25:45 +01:00
Mike Pall
05898a8824
Merge branch 'master' into v2.1
2019-12-08 19:24:47 +01:00
Mike Pall
44382e833a
OSX: Use __thread attribute.
2019-12-08 19:22:37 +01:00
Mike Pall
8961a92dd1
OSX: Don't set a default MACOSX_DEPLOYMENT_TARGET.
2019-12-08 19:22:00 +01:00
Mike Pall
eba586854b
Build MinGW import library, too.
...
Thanks to Tarnyko.
2019-12-08 19:19:12 +01:00
Mike Pall
c43b6a9137
Fix MinGW make clean.
...
Reported by Shmuel Zeigerman.
2019-12-08 19:16:34 +01:00
Mike Pall
84ee8091f6
Merge branch 'master' into v2.1
2019-12-08 19:12:45 +01:00
Mike Pall
08272de59e
Update Android and iOS build docs.
2019-12-08 19:07:22 +01:00
Mike Pall
a75d13c63a
Add note about the unsuitabilty of math.random() for crypto.
2019-12-08 19:01:06 +01:00
Mike Pall
6e228a9cb6
Merge branch 'master' into v2.1
2019-12-08 18:58:50 +01:00
Mike Pall
c6c6e3b416
Update MSVC build script and docs.
2019-12-08 18:52:41 +01:00
Mike Pall
3ece3a3e3a
More recent MSVC is partially C99 compliant.
2019-12-08 18:43:12 +01:00
Mike Pall
e45b04f499
Merge branch 'master' into v2.1
2019-11-10 22:39:40 +01:00
Mike Pall
c4e15b457e
Fix narrowing of conversions to U32.
...
Reported by spacewander.
2019-11-10 22:37:42 +01:00
Mike Pall
8755e0b74b
Fix unsinking of 64 bit constants.
...
Contributed by Thibault Charbonnier.
2019-08-30 12:16:50 +02:00
Mike Pall
88d40b00c3
Merge branch 'master' into v2.1
2019-08-30 11:24:44 +02:00
Mike Pall
20ac817a74
Fix bytecode dump unpatching.
...
Reported by Christopher Oliver.
2019-08-30 11:07:45 +02:00