Dmitry Stogov
ac4ea33c24
Link with undefined functions through "thunks"
2023-12-20 21:06:53 +03:00
Dmitry Stogov
c0fbdd2204
Allow resolution of DATA->DATA references represented as SYM+OFFSET
2023-12-20 18:37:27 +03:00
Dmitry Stogov
3f9d8112f0
Allow delayed resolution of DATA->DATA and DATA->CODE symbolic references
2023-12-20 15:50:09 +03:00
Dmitry Stogov
f385b006ea
Store constant data in the code_buffer segment
2023-12-20 12:56:26 +03:00
Dmitry Stogov
efe122c320
Fixed incorrect padding when convert LLVM to IR without --run
2023-12-20 12:27:13 +03:00
Dmitry Stogov
3dd4146097
Allow using "thunks" to call "far" functions ( #57 )
...
* Allow using "thunks" to call "far" functions
* Fix Windows tests
* Fix identation
2023-12-19 22:22:49 +03:00
Dmitry Stogov
6a4a905347
Fxed possible end-less loop in SCCP
2023-12-19 19:02:58 +03:00
Dmitry Stogov
1b50e33690
Fixed I64 to FLOAT/DOUBLE conversion
2023-12-18 10:17:32 +03:00
Dmitry Stogov
9f6b853540
Fixed symbolic constants support in DESSA moves
2023-12-15 17:26:48 +03:00
Dmitry Stogov
62c64d4924
Fixed code generation for INT2FP
2023-12-15 15:44:48 +03:00
Dmitry Stogov
57d85e51b3
LLVM llvm.bitreverse.i1() => COPY
2023-12-15 14:23:49 +03:00
Dmitry Stogov
624dd3b828
Don't optimize signed division by power of two
2023-12-15 14:09:26 +03:00
Dmitry Stogov
bb739cca9b
Don't optimize signed division by power of two
2023-12-15 14:01:46 +03:00
Dmitry Stogov
571f1d99cb
Fixed code generation for byte division
2023-12-15 11:48:30 +03:00
Dmitry Stogov
752379975b
Fixed code generation for MAX
2023-12-14 23:35:36 +03:00
Dmitry Stogov
53d994f71b
Dixed allignment of array elements
2023-12-14 18:44:50 +03:00
Dmitry Stogov
9d3854d787
Fixed incorrect folding of sybolic constants
2023-12-14 18:44:22 +03:00
Dmitry Stogov
b9647172c2
Fix assertions
2023-12-14 17:12:49 +03:00
Dmitry Stogov
b5c827ce25
Don't mark empty-loop block as empty in the first place
2023-12-14 17:06:40 +03:00
Dmitry Stogov
4569d58072
Prevent endless loop
2023-12-14 16:48:03 +03:00
Dmitry Stogov
16b8e1cf4b
Fixed code generation for imul
2023-12-14 14:19:27 +03:00
Dmitry Stogov
1fa3f2b6ae
Fixed LLVM "ptrtoint" and "inttoptr" conversion
2023-12-14 13:15:16 +03:00
Dmitry Stogov
f78fa1a042
Fixed incorrect symbolic constant fusion
2023-12-14 12:41:24 +03:00
Dmitry Stogov
d04540e4dc
Fixed incorrect LLVM "getelementptr" conversion
2023-12-14 12:40:19 +03:00
Dmitry Stogov
bc0db1432e
Fixed crash in case --emit-c is used together with -O0
2023-12-14 12:39:12 +03:00
Dmitry Stogov
5b2619243a
Fixed several LLVM loader bugs
2023-12-14 01:30:48 +03:00
Dmitry Stogov
27f5e34d90
Support for constants with references to other data structures
2023-12-13 21:03:39 +03:00
Dmitry Stogov
9cebd36a2c
Fix Windows compatibility
2023-12-13 17:37:13 +03:00
Dmitry Stogov
05db256d87
Dot't print exit code after "--run" (delegate this to tester)
2023-12-13 15:59:54 +03:00
Dmitry Stogov
fb10fa2861
Fixed support for "symbolic" data references
2023-12-13 13:37:17 +03:00
Dmitry Stogov
755be821ca
Pass the arguments following the "--run" option to JIT-ed main().
2023-12-13 12:07:04 +03:00
Dmitry Stogov
8065a69830
Use qsort() instead of not portables qsort_r() or qsort_s()
2023-12-12 02:01:37 +03:00
Dmitry Stogov
eeed93083e
Restore ability to reach "local" exit table base address
2023-12-11 15:06:52 +03:00
Dmitry Stogov
dab739f3d2
Fix Windows tests
2023-12-08 17:46:12 +03:00
Dmitry Stogov
1e8ff8078a
Cleanup symbolic constants usage
2023-12-08 17:35:41 +03:00
Dmitry Stogov
f7377e806d
Fix Windows build
2023-12-08 02:03:02 +03:00
Dmitry Stogov
b7e7de5821
Simplify JIT code buffer management
2023-12-08 01:58:45 +03:00
Dmitry Stogov
8b2a536d74
Fixed incorrect ".debug_abbrev" section termination
2023-12-07 00:32:41 +03:00
Dmitry Stogov
6898d26e80
Allow code generation for functions with unesolved symbols
2023-12-06 16:30:44 +03:00
Dmitry Stogov
2c67a3ac86
Fixed support for forward declarations
2023-12-06 14:36:11 +03:00
Dmitry Stogov
0981d76cc7
iImproved LLVM export (builtin function support)
2023-12-06 12:47:03 +03:00
Dmitry Stogov
9a7318e621
Eliminate useless BITCAST
2023-12-06 10:40:28 +03:00
Dmitry Stogov
6a7a87529c
Improve LLVM export (avoid duplicate function declarations)
2023-12-05 23:09:39 +03:00
Pengfei Li
384e1aa926
AArch64: Fix incorrect value of "ctx->code_size"
...
There is a typo in `ir_aarch64.dasc` that may set `ctx->code_size` to an
invalid value (-2). We don't find any test failure with the typo because
currently `ctx->code_size` is only used in `zend_jit_get_veneer()`. This
patch fixes the typo to avoid potential issues in the future.
2023-12-05 17:22:11 +03:00
Dmitry Stogov
86c87d1d1a
LLVM allows "void" type only for function results
2023-12-05 11:06:47 +03:00
Dmitry Stogov
81fab9a2cb
Fixed TAILCALL to CALL conversion
2023-12-04 11:32:26 +03:00
Dmitry Stogov
ed4fd9e5ef
Added support for cache demotion
2023-12-01 11:51:09 +03:00
Dmitry Stogov
c5bf8003c0
On MacOS/AArch64 varargs must be passed on stack
2023-11-30 23:50:53 +03:00
Dmitry Stogov
a746ceb650
AArch64: Make x18 register allocatable on Linux
2023-11-30 21:27:30 +03:00
Dmitry Stogov
dd77b6b71a
Fixed Windows build
2023-11-30 21:17:41 +03:00