| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2022-08-29 | Add #[must_use] annotations to asm instructions | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add a backend test with a load of a GC'd VALUE | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Get started on branchunless port | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Get codegen for deferred compilation working | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add test for direct jump to a code pointer | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Arm64 progress (https://github.com/Shopify/ruby/pull/304) | Kevin Newton | |
| * Get initial wiring up * Split IncrCounter instruction * Breakpoints in Arm64 * Support for ORR * MOV instruction encodings * Implement JmpOpnd and CRet * Add ORN * Add MVN * PUSH, POP, CCALL for Arm64 * Some formatting and implement Op::Not for Arm64 * Consistent constants when working with the Arm64 SP * Allow OR-ing values into the memory buffer * Test lowering Arm64 ADD * Emit unconditional jumps consistently in Arm64 * Begin emitting conditional jumps for A64 * Back out some labelref changes * Remove label API that no longer exists * Use a trait for the label encoders * Encode nop * Add in nops so jumps are the same width no matter what on Arm64 * Op::Jbe for CodePtr * Pass src_addr and dst_addr instead of calculated offset to label refs * Even more jump work for Arm64 * Fix up jumps to use consistent assertions * Handle splitting Add, Sub, and Not insns for Arm64 * More Arm64 splits and various fixes * PR feedback for Arm64 support * Split up jumps and conditional jump logic | |||
| 2022-08-29 | LSL, LSR, B.cond (https://github.com/Shopify/ruby/pull/303) | Kevin Newton | |
| * LSL and LSR * B.cond * Move A64 files around to make more sense * offset -> byte_offset for bcond | |||
| 2022-08-29 | Conscise IR disassembly (https://github.com/Shopify/ruby/pull/302) | Alan Wu | |
| The output from `dbg!` was too verbose. For `test_jo` the output went from 37 lines to 5 lines. The added index helps parsing InsnOut indicies. Samples: ``` test backend::tests::test_jo ... [src/backend/ir.rs:589] &self = Assembler 000 Load(Mem64[Reg(3) + 8]) -> Out64(0) 001 Sub(Out64(0), 1_i64) -> Out64(1) 002 Load(Out64(1)) -> Out64(2) 003 Add(Out64(2), Mem64[Reg(3)]) -> Out64(3) 004 Jo() target=CodePtr(CodePtr(0x5)) -> Out64(4) 005 Mov(Mem64[Reg(3)], Out64(3)) -> Out64(5) test backend::tests::test_reuse_reg ... [src/backend/ir.rs:589] &self = Assembler 000 Load(Mem64[Reg(3)]) -> Out64(0) 001 Add(Out64(0), 1_u64) -> Out64(1) 002 Load(Mem64[Reg(3) + 8]) -> Out64(2) 003 Add(Out64(2), 1_u64) -> Out64(3) 004 Add(Out64(1), 1_u64) -> Out64(4) 005 Add(Out64(1), Out64(4)) -> Out64(5) 006 Store(Mem64[Reg(3)], Out64(4)) -> Out64(6) 007 Store(Mem64[Reg(3) + 8], Out64(5)) -> Out64(7) ``` | |||
| 2022-08-29 | Delete dbg!() calls | Alan Wu | |
| 2022-08-29 | Fix backend transform bug, add test | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port over duphash and newarray | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port over get_branch_target() | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port over setn | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add jo insn and test for jo | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port topn, adjuststack, most of opt_plus | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port guard_two_fixnums | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port gen_full_cfunc_return | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port getlocal_WC0 | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port over gen_putspecialobject | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port gen_putself, log what can't be compiled in --yjit-dump-insns | Maxime Chevalier-Boisvert | |
| 2022-08-29 | TST, CMP, AND/ANDS with registers (https://github.com/Shopify/ruby/pull/301) | Kevin Newton | |
| * Add TST instruction and AND/ANDS entrypoints for immediates * TST/AND/ANDS for registers * CMP instruction | |||
| 2022-08-29 | Make sure allocated reg size in bits matches insn out size | Maxime Chevalier-Boisvert | |
| 2022-08-29 | AND/ANDS for A64 (https://github.com/Shopify/ruby/pull/300) | Kevin Newton | |
| 2022-08-29 | Add Opnd.rm_num_bits() method | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Implement X86Reg::sub_reg() method | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fix small bug in x86_split | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Get rid of temporary context methods | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add bitwise and to x86 backend | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add stores to one of the tests | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Move backend tests to their own file | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add support for using InsnOut as memory operand base | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Rename transform_insns to forward_pass | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add assert | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Remove unused code, add backend asm test | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port bitwise not, gen_check_ints() | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Port gen_code_for_exit_from_stub() | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add atomic counter increment instruction | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Get side exits working, get miniruby to boot with threshold=1 | Maxime Chevalier-Boisvert | |
| 2022-08-29 | LDADDAL, STUR, BL (https://github.com/Shopify/ruby/pull/299) | Kevin Newton | |
| * LDADDAL instruction * STUR * BL instruction * Remove num_bits from imm and uimm * Tests for imm_fits_bits and uimm_fits_bits * Reorder arguments to LDADDAL | |||
| 2022-08-29 | MOVK, MOVZ, BR (https://github.com/Shopify/ruby/pull/296) | Kevin Newton | |
| * MOVK instruction * More tests for the A64 entrypoints * Finish testing entrypoints * MOVZ * BR instruction | |||
| 2022-08-29 | Port over putnil, putobject, and gen_leave() | Maxime Chevalier-Boisvert | |
| * Remove x86-64 dependency from codegen.rs * Port over putnil and putobject * Port over gen_leave() * Complete port of gen_leave() * Fix bug in x86 instruction splitting | |||
| 2022-08-29 | Port gen_leave_exit(), add support for labels to backend | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add cpush and cpop IR instructions | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add conditional jumps | Maxime Chevalier-Boisvert | |
| 2022-08-29 | LDUR (https://github.com/Shopify/ruby/pull/295) | Kevin Newton | |
| * LDUR * Fix up immediate masking * Consume operands directly * Consistency and cleanup * More consistency and entrypoints * Cleaner syntax for masks * Cleaner shifting for encodings | |||
| 2022-08-29 | Map comments in backend | Maxime Chevalier-Boisvert | |
| 2022-08-29 | First pass at porting gen_entry_prologue() | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Have Assembler::compile() return a list of GC offsets | Maxime Chevalier-Boisvert | |
| 2022-08-29 | RET A64 instructions (https://github.com/Shopify/ruby/pull/294) | Kevin Newton | |
| 2022-08-29 | Remove x86_64 dependency in core.rs | Maxime Chevalier-Boisvert | |
