-
Notifications
You must be signed in to change notification settings - Fork 7.9k
JIT for PHP based on DynAsm #3792
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from 250 commits
Commits
Show all changes
904 commits
Select commit
Hold shift + click to select a range
b46a6bc
Fixed handling of smart branch instruction pairs splitted across basi…
dstogov d463fc1
unused label
dstogov 082f7c9
Merge branch 'master' into jit-dynasm
dstogov e45fb6e
Fixed checking of should_send_by_ref in zend_send_var_ex
laruence b204fa5
Fixed test title
laruence c6d93d9
Merge branch 'master' into jit-dynasm
laruence 61aa611
Added test for FETCH_DIM_FUNC_ARG fix
laruence 2eb6e02
Merge branch 'master' into jit-dynasm
dstogov 49d4342
Added missing symbols
dstogov 86f8545
Make JIT for HYBRID VM to use only function opcode handlers.
dstogov 8ebdf14
Merge branch 'master' into jit-dynasm
dstogov ee8849e
Fixed segfault caused by FETCH_DIM_UNSET type infer(from drupal tests)
laruence b3029ec
Merge branch 'master' into jit-dynasm
laruence 1eec656
Fixed incomplete fix
laruence 64ce622
Merge branch 'master' into jit-dynasm
laruence f591d31
Change to assertion (could make potential problems more visible)
laruence ebbacf4
Merge branch 'master' into jit-dynasm
dstogov fed0c64
Merge branch 'master' into jit-dynasm
dstogov 1db5375
Merge branch 'master' into jit-dynasm
dstogov b594ad7
Merge branch 'master' into jit-dynasm
dstogov c9b5ad0
Merge branch 'master' into jit-dynasm
dstogov 8792cc5
Merge branch 'master' into jit-dynasm
dstogov d92113d
Merge branch 'master' into jit-dynasm
dstogov 27b8e1b
Merge branch 'master' into jit-dynasm
dstogov 95ef078
Merge branch 'master' into jit-dynasm
dstogov d5ac3d7
Merge branch 'master' into jit-dynasm
dstogov a60bc06
Allow registr allocation for math instructions, if at least one of op…
dstogov be2efb9
Merge branch 'master' into jit-dynasm
dstogov 368c729
Merge branch 'master' into jit-dynasm
dstogov baef1a5
Merge branch 'master' into jit-dynasm
dstogov b8265fb
Merge branch 'master' into jit-dynasm
dstogov 8b31f8a
Merge branch 'master' into jit-dynasm
dstogov 3bcc9f9
Merge branch 'master' into jit-dynasm
dstogov b2e10ea
Merge branch 'master' into jit-dynasm
dstogov fd1f3d6
Merge branch 'master' into jit-dynasm
laruence d93e7ea
Merge branch 'master' into jit-dynasm
dstogov 2cc7df9
Merge branch 'master' into jit-dynasm
dstogov 1a75df1
Merge branch 'master' into jit-dynasm
dstogov 5ba3d04
Merge branch 'master' into jit-dynasm
dstogov 11dc911
Merge branch 'master' into jit-dynasm
dstogov 4736bdc
Merge branch 'master' into jit-dynasm
dstogov a4983d8
Merge branch 'master' into jit-dynasm
dstogov da669a2
Merge branch 'master' into jit-dynasm
dstogov f514300
Merge branch 'master' into jit-dynasm
dstogov 89e9231
Merge branch 'master' into jit-dynasm
dstogov 81f9499
Merge branch 'master' into jit-dynasm
dstogov b5648fc
Merge branch 'master' into jit-dynasm
dstogov 56b1dd7
Adopt JIT for property access changes in master branch
dstogov 4c9556e
Merge branch 'master' into jit-dynasm
dstogov 4c9b1d5
Merge branch 'master' into jit-dynasm
dstogov 4ac572b
Merge branch 'master' into jit-dynasm
dstogov c6e7dc6
Merge branch 'master' into jit-dynasm
dstogov 79b7598
JIT support for new array creation API.
dstogov ca2b67c
Merge branch 'master' into jit-dynasm
dstogov 49881aa
Merge branch 'master' into jit-dynasm
dstogov fd7abe3
Generate better code for functions with type hints
dstogov e2bebba
JIT for RECV handler
dstogov cdf3621
Avoid useless stores
dstogov 99ea28e
Merge branch 'master' into jit-dynasm
dstogov f4ea4e0
Merge branch 'master' into jit-dynasm
dstogov 0112661
Removed experemental code
dstogov 7f64a7f
Merge branch 'master' into jit-dynasm
dstogov 09f047a
Merge branch 'master' into jit-dynasm
dstogov 7f1a2b1
Fixed support for new run-time constant operands addressing
dstogov c7e6a3c
typo
dstogov 87ebd12
Merge branch 'master' into jit-dynasm
dstogov 42cb293
Merge branch 'master' into jit-dynasm
dstogov faa48e6
Merge branch 'master' into jit-dynasm
dstogov 4f45c4b
Merge branch 'master' into jit-dynasm
laruence 1561f83
Fixed infinite loop after enable RECV(typo?)
laruence 0d4035f
Merge branch 'master' into jit-dynasm
dstogov 236f569
Fixed buggy ZEND_DEFINED handler
laruence 4fe8666
Fixed segfault in X64
laruence 9739861
Merge branch 'master' into jit-dynasm
laruence 5ea0884
Merge branch 'master' into jit-dynasm
dstogov 5d9e0f7
Avoid code generation for dynamic property access if the property is …
dstogov 461d023
Avoid repeatable checks for $this.
dstogov e502aed
Merge branch 'master' into jit-dynasm
laruence 7e31b13
Disable JIT for functions with extened_infos
laruence 996a3f5
Merge branch 'master' into jit-dynasm
dstogov bd3b7f4
Merge branch 'master' into jit-dynasm
laruence 61d6f41
Merge branch 'master' into jit-dynasm
dstogov 8f38270
JIT support for dynamic property caching
dstogov 9553a3e
Merge branch 'master' into jit-dynasm
laruence 71c3d78
Merge branch 'master' into jit-dynasm
laruence 9b5fe73
Merge branch 'master' into jit-dynasm
laruence 16d6d73
Merge branch 'master' into jit-dynasm
laruence 373e3f9
Fixed build
laruence b26570b
Merge branch 'master' into jit-dynasm
laruence d91dcac
Merge branch 'master' into jit-dynasm
laruence b0b450e
Merge branch 'master' into jit-dynasm
dstogov 6332197
Merge branch 'master' into jit-dynasm
dstogov 14e4d6d
Merge branch 'master' into jit-dynasm
dstogov 8110461
Merge branch 'master' into jit-dynasm
dstogov 36fcb38
Fixed JIT for TYPE_CHECK
dstogov b92fd17
Fixed error message
dstogov abb1059
Use "fastcal" calling convention for internal PHP functions on x86
dstogov d6df17f
Merge branch 'master' into jit-dynasm
dstogov 56bf880
Fixed JIT support for recent "master" changes
dstogov 3e4d687
Disable file cache while JIT effects
laruence ca77f1f
Merge branch 'master' into jit-dynasm
laruence 9c1f2ba
Use zend_cpu_supports
laruence a7f0ef8
Merge branch 'master' into jit-dynasm
dstogov 48fd9b0
Merge branch 'master' into jit-dynasm
dstogov ed6f8d6
Fixed JIT support for recent master changes
dstogov 5c3fea8
Merge branch 'master' into jit-dynasm
dstogov 7726583
Strings are not COPYABLE anymore.
dstogov a2426d1
Merge branch 'master' into jit-dynasm
dstogov 2f4d3bc
Merge branch 'master' into jit-dynasm
dstogov 64af789
Merge branch 'master' into jit-dynasm
dstogov 668fafe
Merge branch 'master' into jit-dynasm
dstogov 3a9b81a
Merge branch 'master' into jit-dynasm
dstogov fd6170a
Merge branch 'master' into jit-dynasm
dstogov 99dd8ea
Merge branch 'master' into jit-dynasm
dstogov 1cddf9c
Merge branch 'master' into jit-dynasm
dstogov 74bac5d
Merge branch 'master' into jit-dynasm
dstogov 005a9ee
Merge branch 'master' into jit-dynasm
dstogov 4e8b398
Fixed JIT support for recent master changes.
dstogov 5f48569
Merge branch 'master' into jit-dynasm
dstogov e36b0e4
Merge branch 'master' into jit-dynasm
dstogov 3c898db
Merge branch 'master' into jit-dynasm
dstogov d66680f
Fixed support for recent "master" changes
dstogov 23dea8f
Merge branch 'master' into jit-dynasm
dstogov c662674
ws
dstogov c2a48cc
Cleanup
dstogov 64a1c02
Merge branch 'master' into jit-dynasm
dstogov 9c70524
Fixed register-allocation bug
dstogov 29cb549
Merge branch 'master' into jit-dynasm
dstogov c838635
Fixed compatibility with recent "master" changes
dstogov 9890e3e
Merge branch 'master' into jit-dynasm
dstogov 4cd5635
Merge branch 'master' into jit-dynasm
dstogov 277cedf
Added support for new master changes (incomplete)
dstogov 316f83f
Merge branch 'master' into jit-dynasm
dstogov 56382e2
Added support for new master changes (incomplete)
dstogov e43b6cf
Added support for new master changes (incomplete)
dstogov 60c7b9e
Fixed JIT support for new master changes
dstogov fb92f58
Fixed CPU stack alignment
dstogov dcdcd70
Merge branch 'master' into jit-dynasm
dstogov 11629c9
Merge branch 'master' into jit-dynasm
dstogov fd69f1e
Fixed JIT support for recent master changes
dstogov 4225ed9
Merge branch 'master' into jit-dynasm
dstogov 00f9d6d
Removed useless filename and lineno arguments, used in DEBUG build.
dstogov 2e6eb22
Use better function
dstogov 957ccf5
Merge branch 'master' into jit-dynasm
dstogov b413c52
fixed support for recent master changes
dstogov 8f5acd7
Merge branch 'master' into jit-dynasm
dstogov be190cb
Merge branch 'master' into jit-dynasm
dstogov d1ef1f7
Merge branch 'master' into jit-dynasm
dstogov e4678ec
Merge branch 'master' into jit-dynasm
dstogov 57ba6a6
Merge branch 'master' into jit-dynasm
dstogov d9814b7
Merge branch 'master' into jit-dynasm
dstogov e1b8165
Merge branch 'master' into jit-dynasm
dstogov 01e98a1
Merge branch 'master' into jit-dynasm
dstogov 35ff060
Merge branch 'master' into jit-dynasm
dstogov a230e17
Merge branch 'master' into jit-dynasm
dstogov ec91aa7
Merge branch 'master' into jit-dynasm
dstogov 5076f17
Merge branch 'master' into jit-dynasm
dstogov c88b6f5
Merge branch 'master' into jit-dynasm
dstogov 649f695
Merge branch 'master' into jit-dynasm
dstogov b49c339
JIT support for immutable op_arrays
dstogov 3bf03b4
Merge branch 'master' into jit-dynasm
dstogov d916064
Merge branch 'master' into jit-dynasm
dstogov 7b92995
Merge branch 'master' into jit-dynasm
dstogov a9881b6
Merge branch 'master' into jit-dynasm
dstogov a55e477
Merge branch 'master' into jit-dynasm
dstogov 0d4a825
Merge branch 'master' into jit-dynasm
dstogov e08b392
Merge branch 'master' into jit-dynasm
dstogov 99b0c4d
Merge branch 'master' into jit-dynasm
dstogov 40690c3
Peform run-time constructor check for non-linked classes
dstogov 03f0878
Peform run-time property pffset resolution for non-linked classes
dstogov f21c977
Fixed ext/spl/tests/bug73686.phpt failure
dstogov 6f335ed
Merge branch 'master' into jit-dynasm
dstogov 57ad25b
Partial typed properties support (incomplete)
dstogov 862d748
Merge branch 'master' into jit-dynasm
dstogov 14cb8a2
Merge branch 'master' into jit-dynasm
dstogov 2d2cff1
JIT support for typed properties (incomplete)
dstogov 8a6ed36
Merge branch 'master' into jit-dynasm
dstogov 22428e8
Merge branch 'master' into jit-dynasm
dstogov 78a30ae
JIT support for typed properties.
dstogov 9eb666f
Merge branch 'master' into jit-dynasm
dstogov 0492173
Merge branch 'master' into jit-dynasm
dstogov 3a2ee90
Merge branch 'master' into jit-dynasm
dstogov 7b62b62
Merge branch 'master' into jit-dynasm
dstogov ba60567
Merge branch 'master' into jit-dynasm
dstogov 94a79d4
Merge branch 'master' into jit-dynasm
dstogov 00bc2f1
Fixed compatibility with master
dstogov 7757702
Merge branch 'master' into jit-dynasm
dstogov 20c4fec
Merge branch 'master' into jit-dynasm
dstogov f939bd0
Fixed support for changes in object handlers API.
dstogov 5ebee5c
Fixed compatibility with changes intriduced by typed properties patch
dstogov 597aa20
- renumber ZEND_JIT_DEBUG_* codes
dstogov 2436437
Fixed possible incorrect code generation for ZEND_SL, ZEND_SR and ZEN…
dstogov 08c891d
--disable-opcache-jit just an option (not an extension)
dstogov baf3db2
Remove editors "Local Variales" and "$Id:$" attibute.
dstogov b154736
Merge branch 'master' into jit-dynasm
dstogov 161e940
Merge branch 'master' into jit-dynasm
dstogov f8dd0fe
Remove copyright years and change email address
dstogov 9ae9384
Reverted unintentional change.
dstogov df2f9ce
typo
dstogov f3fd52d
typo
dstogov 5caca8d
We no longer allow persistent strings in user zvals
dstogov 277fce7
Separation is handled by operation functions (e.g. add_function) sinc…
dstogov 5ad142a
Merge branch 'master' into jit-dynasm
dstogov 821c76c
Merge removing --disable-opcache-filecache option
dstogov 77be4ad
Merge branch 'master' into jit-dynasm
dstogov 9274dcb
Removed JIT support for overloaded functions
dstogov 4343103
Merge branch 'master' into jit-dynasm
dstogov 35b5c0d
Fixed resolution of stub names in disassemble output
dstogov fb83a68
Merge branch 'master' into jit-dynasm
dstogov dd5ad82
Merge branch 'master' into jit-dynasm
dstogov dd47535
Merge branch 'master' into jit-dynasm
dstogov 755ca65
ws
dstogov b895271
Added asserts
dstogov 99a3752
Added comments
dstogov 1c8fb1e
Added comments about CPU stack alignment
dstogov 4d2bd07
Added comments.
dstogov a287ade
Merge branch 'master' into jit-dynasm
dstogov 77e42ca
It's not a problem to generate JIT for op_array with debug info, it's…
dstogov 44428f9
Base work for Windows compatibility
weltling df34d48
Merge pull request #3 from weltling/jit-dynasm
dstogov 89ba2af
Fixed test
dstogov a1b07dc
Merge branch 'master' into jit-dynasm
dstogov 17d7dad
Make JIT VM helpers to be compatible with VM without GCC global regis…
dstogov 6124901
Use fastcall calling convention
dstogov b6ce247
Use macros for IP regiser access
dstogov 8ebe985
Implemented JIT supprt for VM without GCC global register variables
dstogov 7492c28
Merge branch 'master' into jit-dynasm
dstogov 3aa1756
Fixed JIT after first profiling request
dstogov b84e926
typo
dstogov 5466d2d
Fixed MSVC compatibility, with explicit type casting
dstogov d239f81
Merge branch 'master' into jit-dynasm
dstogov 7f1fff8
Support for WIN64 (incomplete)
dstogov 7441924
Fixed size calculation
dstogov 678cd53
Support for WIN64
dstogov 65215c3
typo
dstogov eaf0973
Merge branch 'master' into jit-dynasm
dstogov b5e2ae2
Merge branch 'master' into jit-dynasm
dstogov bc47dc9
Merge branch 'master' into jit-dynasm
dstogov 1c6d1bf
JIT support for Windows
dstogov ae158c0
Merge branch 'master' into jit-dynasm
dstogov 4358e7d
Merge branch 'master' into jit-dynasm
dstogov 5ebafb6
Fixed ELF symbol type and binding checks
dstogov f8c9f47
ZTS detection
dstogov 33a4e1f
Merge branch 'master' into jit-dynasm
dstogov 801617a
JIT ZTS support (incomplete)
dstogov 1fc22f3
JIT ZTS support (only Linux)
dstogov 0a1d718
JIT ZTS support (Linux and Windows)
dstogov 9e79cb2
Merge branch 'master' into jit-dynasm
dstogov 33db42b
Merge branch 'master' into jit-dynasm
dstogov f82e5b3
Merge branch 'master' into jit-dynasm
dstogov File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
/* | ||
+----------------------------------------------------------------------+ | ||
| Zend Engine | | ||
+----------------------------------------------------------------------+ | ||
| Copyright (c) 1998-2017 Zend Technologies Ltd. (http://www.zend.com) | | ||
+----------------------------------------------------------------------+ | ||
| This source file is subject to version 2.00 of the Zend license, | | ||
| that is bundled with this package in the file LICENSE, and is | | ||
| available through the world-wide-web at the following url: | | ||
| http://www.zend.com/license/2_00.txt. | | ||
| If you did not receive a copy of the Zend license and are unable to | | ||
| obtain it through the world-wide-web, please send a note to | | ||
| [email protected] so we can mail you a copy immediately. | | ||
+----------------------------------------------------------------------+ | ||
| Authors: Dmitry Stogov <[email protected]> | | ||
| Xinchen Hui <[email protected]> | | ||
+----------------------------------------------------------------------+ | ||
*/ | ||
|
||
#include "zend.h" | ||
#include "zend_gdb.h" | ||
|
||
#include <sys/types.h> | ||
#include <sys/stat.h> | ||
#include <fcntl.h> | ||
#include <unistd.h> | ||
|
||
enum { | ||
ZEND_GDBJIT_NOACTION, | ||
ZEND_GDBJIT_REGISTER, | ||
ZEND_GDBJIT_UNREGISTER | ||
}; | ||
|
||
typedef struct _zend_gdbjit_code_entry { | ||
struct _zend_gdbjit_code_entry *next_entry; | ||
struct _zend_gdbjit_code_entry *prev_entry; | ||
const char *symfile_addr; | ||
uint64_t symfile_size; | ||
} zend_gdbjit_code_entry; | ||
|
||
typedef struct _zend_gdbjit_descriptor { | ||
uint32_t version; | ||
uint32_t action_flag; | ||
struct _zend_gdbjit_code_entry *relevant_entry; | ||
struct _zend_gdbjit_code_entry *first_entry; | ||
} zend_gdbjit_descriptor; | ||
|
||
ZEND_API zend_gdbjit_descriptor __jit_debug_descriptor = { | ||
1, ZEND_GDBJIT_NOACTION, NULL, NULL | ||
}; | ||
|
||
ZEND_API zend_never_inline void __jit_debug_register_code() | ||
{ | ||
__asm__ __volatile__(""); | ||
} | ||
|
||
ZEND_API int zend_gdb_register_code(const void *object, size_t size) | ||
{ | ||
zend_gdbjit_code_entry *entry; | ||
|
||
entry = malloc(sizeof(zend_gdbjit_code_entry) + size); | ||
if (entry == NULL) { | ||
return 0; | ||
} | ||
|
||
entry->symfile_addr = ((char*)entry) + sizeof(zend_gdbjit_code_entry); | ||
entry->symfile_size = size; | ||
|
||
memcpy((char *)entry->symfile_addr, object, size); | ||
|
||
entry->prev_entry = NULL; | ||
entry->next_entry = __jit_debug_descriptor.first_entry; | ||
|
||
if (entry->next_entry) { | ||
entry->next_entry->prev_entry = entry; | ||
} | ||
__jit_debug_descriptor.first_entry = entry; | ||
|
||
/* Notify GDB */ | ||
__jit_debug_descriptor.relevant_entry = entry; | ||
__jit_debug_descriptor.action_flag = ZEND_GDBJIT_REGISTER; | ||
__jit_debug_register_code(); | ||
|
||
return 1; | ||
} | ||
|
||
ZEND_API void zend_gdb_unregister_all(void) | ||
{ | ||
zend_gdbjit_code_entry *entry; | ||
|
||
__jit_debug_descriptor.action_flag = ZEND_GDBJIT_UNREGISTER; | ||
while ((entry = __jit_debug_descriptor.first_entry)) { | ||
__jit_debug_descriptor.first_entry = entry->next_entry; | ||
if (entry->next_entry) { | ||
entry->next_entry->prev_entry = NULL; | ||
} | ||
/* Notify GDB */ | ||
__jit_debug_descriptor.relevant_entry = entry; | ||
__jit_debug_register_code(); | ||
|
||
free(entry); | ||
} | ||
} | ||
|
||
ZEND_API int zend_gdb_present(void) | ||
{ | ||
int ret = 0; | ||
int fd = open("/proc/self/status", O_RDONLY); | ||
|
||
if (fd > 0) { | ||
char buf[1024]; | ||
ssize_t n = read(fd, buf, sizeof(buf) - 1); | ||
char *s; | ||
pid_t pid; | ||
|
||
if (n > 0) { | ||
buf[n] = 0; | ||
s = strstr(buf, "TracerPid:"); | ||
if (s) { | ||
s += sizeof("TracerPid:") - 1; | ||
while (*s == ' ' || *s == '\t') { | ||
s++; | ||
} | ||
pid = atoi(s); | ||
if (pid) { | ||
sprintf(buf, "/proc/%d/exe", (int)pid); | ||
if (readlink(buf, buf, sizeof(buf) - 1) > 0) { | ||
if (strstr(buf, "gdb")) { | ||
ret = 1; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
|
||
close(fd); | ||
} | ||
|
||
return ret; | ||
} | ||
|
||
/* | ||
* Local variables: | ||
* tab-width: 4 | ||
* c-basic-offset: 4 | ||
* indent-tabs-mode: t | ||
* End: | ||
*/ | ||
nikic marked this conversation as resolved.
Show resolved
Hide resolved
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
/* | ||
+----------------------------------------------------------------------+ | ||
| Zend Engine | | ||
+----------------------------------------------------------------------+ | ||
| Copyright (c) 1998-2017 Zend Technologies Ltd. (http://www.zend.com) | | ||
+----------------------------------------------------------------------+ | ||
| This source file is subject to version 2.00 of the Zend license, | | ||
| that is bundled with this package in the file LICENSE, and is | | ||
| available through the world-wide-web at the following url: | | ||
| http://www.zend.com/license/2_00.txt. | | ||
| If you did not receive a copy of the Zend license and are unable to | | ||
| obtain it through the world-wide-web, please send a note to | | ||
| [email protected] so we can mail you a copy immediately. | | ||
+----------------------------------------------------------------------+ | ||
| Authors: Dmitry Stogov <[email protected]> | | ||
| Xinchen Hui <[email protected]> | | ||
+----------------------------------------------------------------------+ | ||
*/ | ||
|
||
#ifndef ZEND_GDB | ||
#define ZEND_GDB | ||
|
||
ZEND_API int zend_gdb_register_code(const void *object, size_t size); | ||
ZEND_API void zend_gdb_unregister_all(void); | ||
ZEND_API int zend_gdb_present(void); | ||
|
||
#endif | ||
|
||
/* | ||
* Local variables: | ||
* tab-width: 4 | ||
* c-basic-offset: 4 | ||
* indent-tabs-mode: t | ||
* End: | ||
*/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
|
||
$(builddir)/minilua: $(srcdir)/jit/dynasm/minilua.c | ||
$(CC) $(srcdir)/jit/dynasm/minilua.c -lm -o $@ | ||
|
||
$(builddir)/jit/zend_jit_x86.c: $(srcdir)/jit/zend_jit_x86.dasc $(srcdir)/jit/dynasm/*.lua $(builddir)/minilua | ||
$(builddir)/minilua $(srcdir)/jit/dynasm/dynasm.lua $(DASM_FLAGS) -o $@ $(srcdir)/jit/zend_jit_x86.dasc | ||
|
||
$(builddir)/jit/zend_jit.lo: \ | ||
$(builddir)/jit/zend_jit_x86.c \ | ||
$(srcdir)/jit/zend_jit_helpers.c \ | ||
$(srcdir)/jit/zend_jit_disasm_x86.c \ | ||
$(srcdir)/jit/zend_jit_gdb.c \ | ||
$(srcdir)/jit/zend_jit_perf_dump.c \ | ||
$(srcdir)/jit/zend_jit_oprofile.c \ | ||
$(srcdir)/jit/zend_jit_vtune.c \ | ||
$(srcdir)/jit/zend_elf.c | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.