16 Commits

Author SHA1 Message Date
Rerumu
59d0abeb41 Add some separators in LuaJIT runtime 2021-12-13 14:12:54 -05:00
Rerumu
c5543cfc2e Fix out of bounds initialization 2021-12-12 22:12:27 -05:00
Rerumu
d483b9a669 Simplify some code 2021-12-12 04:06:33 -05:00
Rerumu
19350d1aef Some JIT tuning 2021-12-12 02:28:53 -05:00
Rerumu
78d4f12bde Fix #4
This fixes the long standing bug with strict aliasing that caused heavily JITed code to miscompile. It stemmed first from pointer reinterpretation which is simply undefined behavior. After fixing that with an `union` and `ffi.copy`, the issue manifested in a different way. Further debugging showed that it was likely that `ffi.copy` (and `ffi.C.memcpy`) would still alias pointers through coercion, more undefined behavior. Now, memory is handled with an `Any` type instead, so aliasing does not occur although unaligned reads and writes may be a problem in the future. I hope this doesn't break. It was very painful to debug.
2021-12-12 01:56:54 -05:00
Rerumu
415f61cb2a Keep consistency 2021-12-11 14:52:42 -05:00
Rerumu
977c5bb6cc Fix strict aliasing issues 2021-12-01 22:26:07 -05:00
Rerumu
7146d83cd4 Simplify LuaJIT memory grow 2021-12-01 05:37:20 -05:00
Rerumu
65374481ff Reorder LuaJIT runtime 2021-12-01 05:36:50 -05:00
Rerumu
508fff73ef Use C calls for LuaJIT memory allocation 2021-11-30 21:09:35 -05:00
Rerumu
e101290b11 Simplify memory size operation 2021-11-30 20:47:44 -05:00
Rerumu
b4901e72e1 Inline LuaJIT reinterpret 2021-11-30 20:43:36 -05:00
Rerumu
d2648b2e96 Add number equality to runtime 2021-11-30 17:49:32 -05:00
Rerumu
e59014bb8d Prefer assertions in runtime 2021-11-30 17:46:20 -05:00
Rerumu
c841011328 Add LuaJIT i64 sign extension 2021-11-30 17:35:42 -05:00
Rerumu
a1894e492c Refactor as Rust workspace 2021-11-28 03:33:00 -05:00