| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2022-08-29 | Add LiveReg IR instruction to fix stats leave exit code ↵ | Alan Wu | |
| (https://github.com/Shopify/ruby/pull/341) It allows for reserving a specific register and prevents the register allocator from clobbering it. Without this `./miniruby --yjit-stats --yjit-callthreshold=1 -e0` was crashing because the counter incrementing code was clobbering RAX incorrectly. | |||
| 2022-08-29 | Fix CI workflows | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fixes (https://github.com/Shopify/ruby/pull/340) | Kevin Newton | |
| * Fix conditional jumps to label * Bitmask immediates cannot be u64::MAX | |||
| 2022-08-29 | Fixes for AArch64 (https://github.com/Shopify/ruby/pull/338) | Kevin Newton | |
| * Better splitting for Op::Add, Op::Sub, and Op::Cmp * Split stores if the displacement is too large * Use a shifted immediate argument * Split all places where shifted immediates are used * Add more tests to the cirrus workflow | |||
| 2022-08-29 | Enable more btests | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add ifdef to clear cache | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Clear the icache on arm | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port and test duparray and splatarray (https://github.com/Shopify/ruby/pull/337) | Noah Gibbs | |
| * Port duparray opcode * Port and test splatarray | |||
| 2022-08-29 | Fix bug with opt_lt, csel on x86 | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Work on opt_lt, fix x86 backend bug in cmp() | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fixes (https://github.com/Shopify/ruby/pull/336) | Kevin Newton | |
| * Fix bitmask encoding to u32 * Fix splitting for Op::And to account for bitmask immediate | |||
| 2022-08-29 | Enable more btests in the CI workflows ↵ | Maxime Chevalier-Boisvert | |
| (https://github.com/Shopify/ruby/pull/334) * Enable more btests in the CI workflows * Update workflows | |||
| 2022-08-29 | Better splitting for Op::Test on AArch64 ↵ | Kevin Newton | |
| (https://github.com/Shopify/ruby/pull/335) | |||
| 2022-08-29 | Fix crash in newhash ccall | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fix corrupted X29 causing segfault, thanks Alan! | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port over newrange | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port over setlocal and getglobal | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Temporarily simplify code for emit_conditional_jump to fix a bug | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Refactor YJIT branches to use PosMarker ↵ | Maxime Chevalier-Boisvert | |
| (https://github.com/Shopify/ruby/pull/333) * Refactor defer_compilation to use PosMarker * Port gen_direct_jump() to use PosMarker * Port gen_branch, branchunless * Port over gen_jump() * Port over branchif and branchnil * Fix use od record_boundary_patch_point in jump_to_next_insn | |||
| 2022-08-29 | Update disasm to work on ARM (https://github.com/Shopify/ruby/pull/331) | Noah Gibbs | |
| 2022-08-29 | Fix dupn (https://github.com/Shopify/ruby/pull/330) | Noah Gibbs | |
| * get_dupn was allocating and throwing away an Assembler object instead of using the one passed in * Uncomment remaining tests in codegen.rs, which seem to work now | |||
| 2022-08-29 | Implement PosMarker instruction (https://github.com/Shopify/ruby/pull/328) | Maxime Chevalier-Boisvert | |
| * Implement PosMarker instruction * Implement PosMarker in the arm backend * Make bindgen run only for clang image * Fix if-else in cirrus CI file * Add missing semicolon * Try removing trailing semicolon * Try to fix shell/YAML syntax Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> | |||
| 2022-08-29 | A lot of fixes coming from our pairing session ↵ | Kevin Newton | |
| (https://github.com/Shopify/ruby/pull/329) * Move to/from SP on AArch64 * Consolidate loads and stores * Implement LDR post-index and LDR pre-index for AArch64 * Implement STR post-index and STR pre-index for AArch64 * Module entrypoints for LDR pre/post -index and STR pre/post -index * Use STR (pre-index) and LDR (post-index) to implement push/pop * Go back to using MOV for to/from SP | |||
| 2022-08-29 | Fix push/pop and frame setup/teardown with Kevin & Alan | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fix some of the codegen.rs tests (https://github.com/Shopify/ruby/pull/327) | Noah Gibbs | |
| 2022-08-29 | Assert not the same register in AArch64 | Kevin Newton | |
| 2022-08-29 | BLR instruction for AArch64 (https://github.com/Shopify/ruby/pull/325) | Kevin Newton | |
| 2022-08-29 | Use frame_setup() and frame_teardown() | Maxime Chevalier-Boisvert | |
| 2022-08-29 | AArch64 frames (https://github.com/Shopify/ruby/pull/324) | Kevin Newton | |
| 2022-08-29 | ADR fixes for LeaLabel and calls | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Conditionals (https://github.com/Shopify/ruby/pull/323) | Kevin Newton | |
| * CSEL on AArch64 * Implement various Op::CSel* instructions | |||
| 2022-08-29 | Port print_int to the new backend (https://github.com/Shopify/ruby/pull/321) | Kevin Newton | |
| * Port print_int to the new backend * Tests for print_int and print_str | |||
| 2022-08-29 | Update cirrus workflow | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fix jumps (https://github.com/Shopify/ruby/pull/322) | Kevin Newton | |
| 2022-08-29 | Add --yjit-dump-insns test to Cirrus Arm workflow | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fix bug with LeaLabel on x86, add CI test | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fix comment typo | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port print_str to new backend (https://github.com/Shopify/ruby/pull/318) | Kevin Newton | |
| * ADR and ADRP for AArch64 * Implement Op::Jbe on X86 * Lera instruction * Op::BakeString * LeaPC -> LeaLabel * Port print_str to the new backend * Port print_value to the new backend * Port print_ptr to the new backend * Write null-terminators in Op::BakeString * Fix up rebase issues on print-str port * Add back in panic for X86 backend for unsupported instructions being lowered * Fix target architecture | |||
| 2022-08-29 | Port newhash, add tests for newhash, duphash | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add extra assertion in new_label for Kevin | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Exclude X0 (C_RET_REG) from allocatable registers on arm ↵ | Maxime Chevalier-Boisvert | |
| (https://github.com/Shopify/ruby/pull/319) * Exclude X0 (C_RET_REG) from allocatable registers on arm * Add another small test snippett | |||
| 2022-08-29 | Op::CPushAll and Op::CPopAll (https://github.com/Shopify/ruby/pull/317) | Kevin Newton | |
| Instructions for pushing all caller-save registers and the flags so that we can implement dump_insns. | |||
| 2022-08-29 | Assert that the # of bytes matches for label refs ↵ | Kevin Newton | |
| (https://github.com/Shopify/ruby/pull/316) | |||
| 2022-08-29 | Encode MRS and MSR for AArch64 (https://github.com/Shopify/ruby/pull/315) | Kevin Newton | |
| 2022-08-29 | Fix compile errors on arm on the CI (https://github.com/Shopify/ruby/pull/313) | Maxime Chevalier-Boisvert | |
| * Fix compile errors on arm on the CI * Fix typo | |||
| 2022-08-29 | Port over putstring | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port over setlocal_wc0 | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port gen_getlocal() | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port YJIT New Backend Temp Checks to Cirrus ↵ | Maxime Chevalier-Boisvert | |
| (https://github.com/Shopify/ruby/pull/312) Co-authored-by: Jean Boussier <jean.boussier@gmail.com> | |||
| 2022-08-29 | Better label refs (https://github.com/Shopify/ruby/pull/310) | Kevin Newton | |
| Previously we were using a `Box<dyn FnOnce>` to support patching the code when jumping to labels. We needed to do this because some of the closures that were being used to patch needed to capture local variables (on both X86 and ARM it was the type of condition for the conditional jumps). To get around that, we can instead use const generics since the condition codes are always known at compile-time. This means that the closures go from polymorphic to monomorphic, which means they can be represented as an `fn` instead of a `Box<dyn FnOnce>`, which means they can fall back to a plain function pointer. This simplifies the storage of the `LabelRef` structs and should hopefully be a better default going forward. | |||
