| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2022-08-29 | Port class variable instructions (https://github.com/Shopify/ruby/pull/346) | Takashi Kokubun | |
| 2022-08-29 | Port setglobal to the new backend (https://github.com/Shopify/ruby/pull/347) | Takashi Kokubun | |
| 2022-08-29 | Minor cleanups (https://github.com/Shopify/ruby/pull/345) | Alan Wu | |
| * Move allocation into Assembler::pos_marker We wanted to do this to begin with but didn't because we were confused about the lifetime parameter. It's actually talking about the lifetime of the references that the closure captures. Since all of our usages capture no references (they use `move`), it's fine to put a `+ 'static` here. * Use optional token syntax for calling convention macro * Explicitly request C ABI on ARM It looks like the Rust calling convention for functions are the same as the C ABI for now and it's unlikely to change, but it's easy for us to be explicit here. I also tried saying `extern "aapcs"` but that unfortunately doesn't work. | |||
| 2022-08-29 | Port gen_checktype to the new IR assembler backend ↵ | Zack Deveau | |
| (https://github.com/Shopify/ruby/pull/343) | |||
| 2022-08-29 | Port the YJIT defined opcode; fix C_ARG_REGS ↵ | Noah Gibbs | |
| (https://github.com/Shopify/ruby/pull/342) | |||
| 2022-08-29 | A64: Fix off by one in offset encoding for BL ↵ | Alan Wu | |
| (https://github.com/Shopify/ruby/pull/344) * A64: Fix off by one in offset encoding for BL It's relative to the address of the instruction not the end of it. * A64: Fix off by one when encoding B It's relative to the start of the instruction not the end. * A64: Add some tests for boundary offsets | |||
| 2022-08-29 | Fix a bug in the x86 backend wrt large integer values, enable more tests | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port and test checkkeyword (https://github.com/Shopify/ruby/pull/339) | Noah Gibbs | |
| 2022-08-29 | Fix IncrCounter on ARM | Alan Wu | |
| The order of operands to LDADDAL were flipped and the destination pointer was dereferenced instead of passed as an address. | |||
| 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 | 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 | 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 | 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 | Fix jumps (https://github.com/Shopify/ruby/pull/322) | Kevin Newton | |
| 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 | |
