Граф коммитов

68652 Коммитов

Автор SHA1 Сообщение Дата
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