| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 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 | |
| 2022-08-29 | Progress on codegen.rs port | Maxime Chevalier-Boisvert | |
| 2022-08-29 | * Arm64 Beginnings (https://github.com/Shopify/ruby/pull/291) | Maxime Chevalier-Boisvert | |
| * Initial setup for aarch64 * ADDS and SUBS * ADD and SUB for immediates * Revert moved code * Documentation * Rename Arm64* to A64* * Comments on shift types * Share sig_imm_size and unsig_imm_size | |||
| 2022-08-29 | Add test for lea and ret. Fix codegen for lea and ret. | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Change codegen.rs to use backend Assembler directly | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Implement gc offset logic | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Load GC Value operands into registers | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add CCall IR insn, implement gen_swap() | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add gen_dupn | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add test with register reuse | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fix issue with load, gen_dup | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Implement target-specific insn splitting with Kevin. Add tests. | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Make assembler methods public, sketch gen_dup with new backend | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Fix bug with asm.comment() | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Bias register allocator to reuse first operand | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add dbg!() for Assembler. Fix regalloc issue. | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Function to map from Opnd => X86Opnd | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Start work on platform-specific codegen | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Split insns (https://github.com/Shopify/ruby/pull/290) | Kevin Newton | |
| * Split instructions if necessary * Add a reusable transform_insns function * Split out comments labels from transform_insns * Refactor alloc_regs to use transform_insns | |||
| 2022-08-29 | IR register allocation | Kevin Newton | |
| PR: https://github.com/Shopify/ruby/pull/289 | |||
| 2022-08-29 | Removed String opnd so that we can derive Copy for Opnd | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Complete sketch for guard_object_is_heap | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Change push insn macros | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Switch IR to use Option<Target> | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Add macro to define ops | Maxime Chevalier-Boisvert | |
| 2022-08-29 | Progress on IR sketch | Maxime Chevalier-Boisvert | |
| 2022-08-29 | WIP backend IR sketch | Maxime Chevalier-Boisvert | |
| 2022-08-24 | add --yjit-dump-iseqs param (https://github.com/Shopify/ruby/pull/332) | Noah Gibbs | |
| Notes: Merged: https://github.com/ruby/ruby/pull/6278 | |||
| 2022-08-19 | Rename mjit_exec to jit_exec (#6262) | Takashi Kokubun | |
| * Rename mjit_exec to jit_exec * Rename mjit_exec_slowpath to mjit_check_iseq * Remove mjit_exec references from comments Notes: Merged-By: k0kubun <takashikkbn@gmail.com> | |||
| 2022-08-09 | Regen YJIT bindings | Jeremy Evans | |
| Notes: Merged: https://github.com/ruby/ruby/pull/6158 | |||
| 2022-08-04 | YJIT: Allow str-concat arg to be any string subtype, not just rb_cString (#6205) | Noah Gibbs | |
| Allow str-concat arg to be any string subtype, not just rb_cString Notes: Merged-By: maximecb <maximecb@ruby-lang.org> | |||
| 2022-08-04 | YJIT: Add known_* helpers for Type (#6208) | John Hawthorn | |
| * YJIT: Add known_* helpers for Type This adds a few helpers to Type which all return Options representing what is known, from a Ruby perspective, about the type. This includes: * known_class_of: If known, the class represented by this type * known_value_type: If known, the T_ value type * known_exact_value: If known, the exact VALUE represented by this type (currently this is only available for true/false/nil) * known_truthy: If known, whether or not this value evaluates as true (not false or nil) The goal of this is to abstract away the specifics of the mappings between types wherever possible from the codegen. For example previously by introducing Type::CString as a more specific version of Type::TString, uses of Type::TString in codegen needed to be updated to check either case. Now by using known_value_type, at least in theory we can introduce new types with minimal (if any) codegen changes. I think rust's Option type allows us to represent this uncertainty fairly well, and should help avoid mistakes, and the matching using this turned out pretty cleanly. * YJIT: Use known_value_type for checktype * YJIT: Use known_value_type for T_STRING check * YJIT: Use known_class_of in guard_known_klass * YJIT: Use known truthyness in jit_rb_obj_not * YJIT: Rename known_class_of => known_class Notes: Merged-By: maximecb <maximecb@ruby-lang.org> | |||
| 2022-07-28 | YJIT: Teach getblockparamproxy to handle the no-block case without exiting ↵ | Matthew Draper | |
| (#6191) Teach getblockparamproxy to handle the no-block case without exiting Co-authored-by: John Hawthorn <john@hawthorn.email> Co-authored-by: John Hawthorn <john@hawthorn.email> Notes: Merged-By: maximecb <maximecb@ruby-lang.org> | |||
| 2022-07-20 | YJIT: Skip setlocal WB check for immediate values (#6122) | John Hawthorn | |
| Write barriers may be required when VM_ENV_FLAG_WB_REQUIRED is set, however write barriers only affect heap objects being written. If we know an immediate value is being written we can skip this check. Notes: Merged-By: maximecb <maximecb@ruby-lang.org> | |||
| 2022-07-18 | Extract vm_ic_entry API to mimic vm_cc behavior | Jemma Issroff | |
| Notes: Merged: https://github.com/ruby/ruby/pull/5978 | |||
