Commit Graph

612 Commits

Author SHA1 Message Date
Dmitry Stogov
2148f05392 Initial support for fascall calling convention (incomplete) 2022-06-22 23:59:56 +03:00
Dmitry Stogov
ef3ffff81b Fix CALL/1 copying. Fallback to CALL+RETURN when we can't generate code for TAILCALL. 2022-06-22 17:57:31 +03:00
Dmitry Stogov
a165c43196 Initial support for thread local storage + optimization of some related code selection patterns 2022-06-22 16:02:43 +03:00
Dmitry Stogov
9b25587eb6 Compound assignment instruction fusion 2022-06-21 17:33:57 +03:00
Dmitry Stogov
082bcf89c9 Use ir_ctx.fixed_regset to limit available registers 2022-06-21 16:13:14 +03:00
Dmitry Stogov
fc2266d61a Remove PHP specific registers 2022-06-21 15:09:26 +03:00
Dmitry Stogov
f62e1da8ef Make distinction between ENTRY and regular labels 2022-06-21 14:57:31 +03:00
Dmitry Stogov
88b66a77cd Support for multiple ENTRY 2022-06-21 13:56:29 +03:00
Dmitry Stogov
cb64f578eb Avoid memory allocation for empty arguments list 2022-06-21 13:04:33 +03:00
Dmitry Stogov
4060f9ca23 Avoid hardcoded file path (use stdin instead) 2022-06-21 12:24:44 +03:00
Dmitry Stogov
00e92483bc Fix compilation warnings 2022-06-21 11:41:59 +03:00
Dmitry Stogov
be054efb97 Use function API intead of macros 2022-06-21 11:24:42 +03:00
Dmitry Stogov
0ed7f7b41e Fix CFG construction 2022-06-20 23:31:32 +03:00
Dmitry Stogov
5ef1e97261 Better support for unreachable basic blocks 2022-06-20 16:34:44 +03:00
Dmitry Stogov
f8a23e9fe4 Don't protect/unprotect external code buffer 2022-06-17 13:22:26 +03:00
Dmitry Stogov
1c78c3a2c2 Fix CFG consruction when some BB cannot be find using backward serach
(e.g. function with an infinity loop and without return)
2022-06-17 12:20:15 +03:00
Dmitry Stogov
688b547a1e Fix incorret size 2022-06-17 10:08:05 +03:00
Dmitry Stogov
68477b7d7c Add assertion 2022-06-17 09:41:06 +03:00
Dmitry Stogov
411dd20331 Support for code fragments with multiple entries 2022-06-16 23:49:27 +03:00
Dmitry Stogov
ac5c3981e5 Allow LOOP_BEGIN to have multiple input back-edges 2022-06-16 12:31:23 +03:00
Dmitry Stogov
3f6c1ee0f5 cleanup 2022-06-15 22:48:19 +03:00
Dmitry Stogov
ba6bb796a4 Fix "dot" graphs 2022-06-15 17:31:59 +03:00
Dmitry Stogov
5fb115ab11 Remove LOOP_EXIT 2022-06-15 17:27:31 +03:00
Dmitry Stogov
706850f578 Prevent mov reg to itself 2022-06-15 14:37:16 +03:00
Dmitry Stogov
d877e35909 Fuse load+cmp 2022-06-15 13:15:19 +03:00
Dmitry Stogov
b5a3b2fe90 Load fusion and cmp+guard fusion 2022-06-15 12:27:36 +03:00
Dmitry Stogov
be0ecd0eb8 Fix LOAD/STORE with constant addresses 2022-06-14 22:38:35 +03:00
Dmitry Stogov
0a93d2e41b Fix incorrect type usage 2022-06-14 20:51:39 +03:00
Dmitry Stogov
f841fb6c34 Initial support for guards 2022-06-14 16:27:33 +03:00
Dmitry Stogov
af4558e439 Allow emitting native code into preallocated buffer 2022-06-10 11:30:19 +03:00
Dmitry Stogov
5cafe50d36 Initial support for PHP 2022-06-10 00:16:29 +03:00
Dmitry Stogov
63ec9b4864 iRemove useless (always true) condition 2022-06-07 14:45:57 +03:00
Dmitry Stogov
3212cd5bd2 Fix compilation warnings 2022-06-07 14:43:35 +03:00
Dmitry Stogov
03bb1d1c4d Flush CPU cache 2022-06-07 11:53:27 +03:00
Dmitry Stogov
fbedabc5d8 cleanup 2022-06-07 10:17:41 +03:00
Dmitry Stogov
1108acf9b8 cleanup 2022-06-06 23:12:45 +03:00
Dmitry Stogov
ad052c59ab cleanup 2022-06-06 22:36:11 +03:00
Dmitry Stogov
17797a4a84 cleanup 2022-06-06 18:10:41 +03:00
Dmitry Stogov
f6b81b14e9 Aarch64 back-end 2022-06-06 15:27:25 +03:00
Dmitry Stogov
054a70012e Aarch64 back-end (incomplete) 2022-06-03 12:47:02 +03:00
Dmitry Stogov
c28fe2734d Validate operand types 2022-06-03 11:23:05 +03:00
Dmitry Stogov
30e11861dd Aarch64 back-end (incomplete) 2022-06-03 00:38:49 +03:00
Dmitry Stogov
fb998c9058 Aarch64 back-end (incomplete) 2022-06-02 18:34:47 +03:00
Dmitry Stogov
2af3f0569d Merge last changes from LuaJIT repo 2022-06-02 15:26:58 +03:00
Dmitry Stogov
ab8019e0cd Aarch64 back-end (incomplete) 2022-06-02 15:12:56 +03:00
Dmitry Stogov
77e5e4a62c DynAsm/ARM64: Temporary fix for "LSL Rx(dst), Rd(src), #imm" encoding 2022-06-02 13:40:50 +03:00
Dmitry Stogov
bb842b489c Aarch64 backend support & unification 2022-06-01 18:16:32 +03:00
Dmitry Stogov
1be868c779 Start Aarch64 back-end 2022-06-01 00:51:02 +03:00
Dmitry Stogov
91bddc09ed Cleanup & unification 2022-06-01 00:34:45 +03:00
Dmitry Stogov
00c300fc9f Start Aarch64 back-end 2022-05-31 11:22:31 +03:00