Alan Wu
12ba0c0815
Declare extern with RUBY_EXTERN for MJIT
2021-10-20 18:19:25 -04:00
Alan Wu
d9ab1e9563
Update dependencies
2021-10-20 18:19:25 -04:00
Alan Wu
93f6ac39f2
MicroJIT: Don't compile trace instructions
2021-10-20 18:19:25 -04:00
Alan Wu
ba45aff16b
Don't call MicroJIT from MJIT output
2021-10-20 18:19:25 -04:00
Alan Wu
a245db8df8
Export MicroJIT global used in MJIT
2021-10-20 18:19:25 -04:00
Maxime Chevalier-Boisvert
e677ca4af0
Fixed is-object check in opt_send_without_block
2021-10-20 18:19:25 -04:00
Maxime Chevalier-Boisvert
7c9fdb5dc9
Check receiver type and klass in MicroJIT
2021-10-20 18:19:25 -04:00
Alan Wu
7650352868
Take the VM lock when recompiling
2021-10-20 18:19:25 -04:00
Alan Wu
8bda11f690
MicroJIT: compile after ten calls
2021-10-20 18:19:25 -04:00
Maxime Chevalier-Boisvert
ef9eb83cbe
Commit before merge
2021-10-20 18:19:25 -04:00
Maxime Chevalier-Boisvert
2cb376a53f
Started refactoring opt_send_without_block with codegen-time checks
2021-10-20 18:19:25 -04:00
Maxime Chevalier-Boisvert
32a66b99f6
Add system to implement codegen preconditions in JIT
2021-10-20 18:19:25 -04:00
Maxime Chevalier-Boisvert
6f81bd2c76
Added print_ptr() util function for debugging
2021-10-20 18:19:25 -04:00
Maxime Chevalier-Boisvert
e5751768ba
Added int3() to x86 asm
2021-10-20 18:19:25 -04:00
Alan Wu
beab644408
Anonymous union is a C11 feature unavailable to us
2021-10-20 18:19:25 -04:00
Alan Wu
e84083593c
oops Direct threading should be default
2021-10-20 18:19:25 -04:00
Alan Wu
bab308b923
Explicitly convert function pointer to void pointer
2021-10-20 18:19:24 -04:00
Alan Wu
7662653b4c
Fix compilation for OPT_THREADED_CODE=2
2021-10-20 18:19:24 -04:00
Alan Wu
edede7733d
Explicitly convert function pointer to void pointer
2021-10-20 18:19:24 -04:00
Alan Wu
b8dff14afa
_GNU_SOURCE has to be before includes
2021-10-20 18:19:24 -04:00
Alan Wu
3c8a9da7ef
Bump executable memory allocation size
...
We run out it on CI in test-all.
2021-10-20 18:19:24 -04:00
Alan Wu
a132d69757
Get access to MAP_ANONYMOUS in pedantic compile mode
2021-10-20 18:19:24 -04:00
Alan Wu
df15dfa6fd
Don't put MicroJIT status in RUBY_DESCRIPTION
...
That messes with tests too much.
2021-10-20 18:19:24 -04:00
Alan Wu
2790428e55
Zero sized array are not standard C
2021-10-20 18:19:24 -04:00
Alan Wu
7e400ddc79
Try to fix Windows build
2021-10-20 18:19:24 -04:00
Alan Wu
805f49630d
Fix MicroJIT's putobject against GC copmaction
2021-10-20 18:19:24 -04:00
Alan Wu
e9ecf80d20
Respect redefinition in MicroJIT's opt_minus
2021-10-20 18:19:24 -04:00
Alan Wu
f500c1e321
Update dependency
2021-10-20 18:19:24 -04:00
Alan Wu
040cfdb139
Small build fixes
2021-10-20 18:19:24 -04:00
Alan Wu
7d1546ece5
Try to fix Windows build
2021-10-20 18:19:24 -04:00
Alan Wu
a3e58f4df8
Compile with MicroJIT disabled when scrape fails
...
This is just so we can build successfully on -O0 and other cases that
are not supported by the code scraper.
2021-10-20 18:19:24 -04:00
Alan Wu
726bdd4d35
Show whether MicroJIT is enabled in the version string
2021-10-20 18:19:24 -04:00
Maxime Chevalier-Boisvert
12283c58da
Removed inc/dec instructions because usage not recommended.
2021-10-20 18:19:24 -04:00
Alan Wu
5f4e30be66
Run ruby tool/update-deps --fix
2021-10-20 18:19:24 -04:00
Alan Wu
7fbf6d4019
Move registers into header and make them static
...
We were leaking these as global symbols and were having linking errors
with Clang 12.
2021-10-20 18:19:24 -04:00
Maxime Chevalier-Boisvert
e3cd43e2bc
Implemented opt_minus in MicroJIT
2021-10-20 18:19:24 -04:00
Alan Wu
4e9a62c963
Comment out jnl to fix Linux build again
2021-10-20 18:19:24 -04:00
Alan Wu
1159034cae
Fix compilation for -DUSE_INSNS_COUNTER
2021-10-20 18:19:24 -04:00
Maxime Chevalier-Boisvert
851ea46351
Added member_opnd() convenience macro
2021-10-20 18:19:24 -04:00
Aaron Patterson
d7f012666d
Partially implement opt_send_without_block
...
It will read and check the inline cache now, but we need to actually
call the method.
Co-Authored-By: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
2021-10-20 18:19:24 -04:00
Maxime Chevalier-Boisvert
e99e3daace
Added jmp_ptr() to ujit_asm.h
2021-10-20 18:19:24 -04:00
Alan Wu
a8d784888d
Fix mistake in ujit command line parsing
2021-10-20 18:19:24 -04:00
Maxime Chevalier-Boisvert
2c866ce8f0
Check if outlined code block has enough space too
2021-10-20 18:19:24 -04:00
Alan Wu
e8c914c250
Implement the --disable-ujit command line option
2021-10-20 18:19:24 -04:00
Alan Wu
f3c961f273
endbr64 is fine
2021-10-20 18:19:24 -04:00
Maxime Chevalier-Boisvert
e0c5d4ecd9
Implemented side-exits to interpreter. setlocal_WC_0
2021-10-20 18:19:24 -04:00
Maxime Chevalier-Boisvert
4d72b9a2f7
Start implementing setlocal_wc0
2021-10-20 18:19:24 -04:00
Alan Wu
5ed7e59365
Comment out jnl to avoid conflict with system header
...
This is specific to Linux
2021-10-20 18:19:24 -04:00
Alan Wu
453218b272
Preliminary GNU/Linux support for code scraper
...
Let's see if this works on CI
2021-10-20 18:19:24 -04:00
Alan Wu
3d87eadf16
Refactor ujit_examples.h generator. Remove dwarfdump dependency
2021-10-20 18:19:24 -04:00