summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-10-20MicroJIT: avoid having to invalidate running output codeAlan Wu
2021-10-20Update comment for `ujit_compile_insn`Alan Wu
2021-10-20MicroJIT: generate less code for CFUNCsAlan Wu
Added UJIT_CHECK_MODE. Set to 1 to double check method dispatch in generated code. It's surprising to me that we need to watch both cc and cme. There might be opportunities to simplify there.
2021-10-20Don't create a stack frame for Hash#key?Maxime Chevalier-Boisvert
2021-10-20Fix GCC warningMaxime Chevalier-Boisvert
2021-10-20Added stack overflow check to MicroJIT CFUNC callsMaxime Chevalier-Boisvert
2021-10-20Added RUBY_VM_CHECK_INTS to CFUNC callsMaxime Chevalier-Boisvert
2021-10-20Fix compiler warningsMaxime Chevalier-Boisvert
2021-10-20Implemented mechanism for rel32 callMaxime Chevalier-Boisvert
2021-10-20Move MicroJIT compilation threshold into MicroJIT's headerAlan Wu
2021-10-20Fixed two CFUNC call bugs thanks to Alan & Aaron!Maxime Chevalier-Boisvert
2021-10-20MicroJIT: Read pointer to call cache from call dataAlan Wu
The call cache changes when the call site becomes polymophic and can result in the generated code falsely assuming cd->cc->cme is not NULL. Here is a crasher: def body(thing) thing.strip end str = "" 10.times { body(str) } body(0) rescue p 'not found' body(str)
2021-10-20Fix MicroJIT argument copying for CFUNC callsMaxime Chevalier-Boisvert
2021-10-20Fixed two issues with MicroJIT CFUNC callsMaxime Chevalier-Boisvert
2021-10-20First pass at CFUNC calls complete. Not yet functional.Maxime Chevalier-Boisvert
2021-10-20Refactor ujit, define named register constants, code cleanupMaxime Chevalier-Boisvert
2021-10-20MicroJIT: switch to example that passes ec as second argumentAlan Wu
opt_send_without_block needs it. Ideally we would use this example only when an instruction in the compiled sequence needs `ec`. We can worry about that later.
2021-10-20MicroJIT: Use R9 in generated code for Ruby stack pointerAlan Wu
2021-10-20Add to the MicroJIT scraper an example that passes ecAlan Wu
2021-10-20Commit before merge.Maxime Chevalier-Boisvert
2021-10-20Updated C function call sketchMaxime Chevalier-Boisvert
2021-10-20Remove comment. Commit before rebase.Maxime Chevalier-Boisvert
2021-10-20Fix MicroJIT logic in MJIT execAlan Wu
2021-10-20Never compile with MicroJIT when MJIT is enabledAlan Wu
There is a crash in there that we don't want to worry about for now.
2021-10-20Declare extern with RUBY_EXTERN for MJITAlan Wu
2021-10-20Update dependenciesAlan Wu
2021-10-20MicroJIT: Don't compile trace instructionsAlan Wu
2021-10-20Don't call MicroJIT from MJIT outputAlan Wu
2021-10-20Export MicroJIT global used in MJITAlan Wu
2021-10-20Fixed is-object check in opt_send_without_blockMaxime Chevalier-Boisvert
2021-10-20Check receiver type and klass in MicroJITMaxime Chevalier-Boisvert
2021-10-20Take the VM lock when recompilingAlan Wu
2021-10-20MicroJIT: compile after ten callsAlan Wu
2021-10-20Commit before mergeMaxime Chevalier-Boisvert
2021-10-20Started refactoring opt_send_without_block with codegen-time checksMaxime Chevalier-Boisvert
2021-10-20Add system to implement codegen preconditions in JITMaxime Chevalier-Boisvert
2021-10-20Added print_ptr() util function for debuggingMaxime Chevalier-Boisvert
2021-10-20Added int3() to x86 asmMaxime Chevalier-Boisvert
2021-10-20Anonymous union is a C11 feature unavailable to usAlan Wu
2021-10-20oops Direct threading should be defaultAlan Wu
2021-10-20Explicitly convert function pointer to void pointerAlan Wu
2021-10-20Fix compilation for OPT_THREADED_CODE=2Alan Wu
2021-10-20Explicitly convert function pointer to void pointerAlan Wu
2021-10-20_GNU_SOURCE has to be before includesAlan Wu
2021-10-20Bump executable memory allocation sizeAlan Wu
We run out it on CI in test-all.
2021-10-20Get access to MAP_ANONYMOUS in pedantic compile modeAlan Wu
2021-10-20Don't put MicroJIT status in RUBY_DESCRIPTIONAlan Wu
That messes with tests too much.
2021-10-20Zero sized array are not standard CAlan Wu
2021-10-20Try to fix Windows buildAlan Wu
2021-10-20Fix MicroJIT's putobject against GC copmactionAlan Wu