| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2021-10-20 | Yet Another Ruby JIT! | Jose Narvaez | |
| Renaming uJIT to YJIT. AKA s/ujit/yjit/g. | |||
| 2021-10-20 | uJIT: support 64 bit operands for TEST. Use it to check for zero | Alan Wu | |
| It's one byte shorter than `cmp reg64, 0`. To illustrate: ``` 48 83 f9 00 cmp rcx, 0x0 48 85 c9 test rcx, rcx ``` | |||
| 2021-10-20 | Runtime counters for bailing from opt_send_without_block | Alan Wu | |
| This allows counting things in generated code such as side exits or different reasons for failing to compile. Runtime counters are exposed to Ruby as `UJIT.runtime_stats` for ease of reporting and analysis. | |||
| 2021-10-20 | Support memory operands to pop | Max Bernstein | |
| 2021-10-20 | Support memory operands to push | Max Bernstein | |
| 2021-10-20 | Fix jmp encoding. Rename conditional jumps jxx() to jxx_label() | Maxime Chevalier-Boisvert | |
| 2021-10-20 | oops | Alan Wu | |
| 2021-10-20 | Fix pedantic returning void | Alan Wu | |
| 2021-10-20 | ujit_asm: if mmap() fails with the address hint, try without | Mike Dalessio | |
| valgrind doesn't seem to support the address hint, and so the fallback to using NULL will allow valgrind to run. | |||
| 2021-10-20 | Tally instructions when taking side exists for --ujit-stats | Alan Wu | |
| shopify/ruby#29 Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> | |||
| 2021-10-20 | Introduce version_t struct. Will be needed for code invalidation. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Add sign-extended mode for test() instruction | Maxime Chevalier-Boisvert | |
| 2021-10-20 | MicroJIT: generate less code for CFUNCs | Alan 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-20 | Added RUBY_VM_CHECK_INTS to CFUNC calls | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Implemented mechanism for rel32 call | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added int3() to x86 asm | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Anonymous union is a C11 feature unavailable to us | Alan Wu | |
| 2021-10-20 | Explicitly convert function pointer to void pointer | Alan Wu | |
| 2021-10-20 | _GNU_SOURCE has to be before includes | Alan Wu | |
| 2021-10-20 | Get access to MAP_ANONYMOUS in pedantic compile mode | Alan Wu | |
| 2021-10-20 | Small build fixes | Alan Wu | |
| 2021-10-20 | Try to fix Windows build | Alan Wu | |
| 2021-10-20 | Removed inc/dec instructions because usage not recommended. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Move registers into header and make them static | Alan Wu | |
| We were leaking these as global symbols and were having linking errors with Clang 12. | |||
| 2021-10-20 | Added jmp_ptr() to ujit_asm.h | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Implemented side-exits to interpreter. setlocal_WC_0 | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added 8-bit and 16-bit general-purpose registers, more tests. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Add location hint to code block mmap call | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added method to align code block write position | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Port print_int, movsx. Implement putself. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Add function to print strings from generated code | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Compiling getlocal_WC_0 | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Ported xor and cmovcc instructions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Ported neg, and, or instructions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Remove PC argument from ujit instructions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Small refactorings in ujit_compile.c | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added cmp, not. Generate code for nop instruction. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Ported inc/dec instructions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Removed native_pop_code, ported call with label | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Ported label linking and conditional jumps | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added shift instructions | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added sub instruction, 32-bit registers, more tests | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Added jmp R/M instruction | Maxime Chevalier-Boisvert | |
| 2021-10-20 | add and mov instruction encoding ported and tested | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Progress on x86 assembler. Encode a few simple instructions. | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Started porting instruction encoding | Maxime Chevalier-Boisvert | |
| 2021-10-20 | Progress on porting x86 assembler for MicroJIT | Maxime Chevalier-Boisvert | |
