[ 0] Comment() "invokeblock" -> None [ 1] Comment() "get local EP" -> None | [ 2] Load(Mem64[Reg(19) + 32]) -> A64Reg { num_bits: 64, reg_no: 11 } | [ 3] Load(Mem64[Reg(11) - -8]) -> A64Reg { num_bits: 64, reg_no: 11 } | [ 4] And(A64Reg { num_bits: 64, reg_no: 11 }, fffffffffffffffc_u64) -> A64Reg { num_bits: 64, reg_no: 11 } | [ 5] Load(Mem64[Reg(11) - -8]) -> A64Reg { num_bits: 64, reg_no: 11 } | [ 6] Comment() "guard block_handler type" -> None || [ 7] And(A64Reg { num_bits: 64, reg_no: 11 }, 3_u64) -> A64Reg { num_bits: 64, reg_no: 12 } ||| [ 8] Load(1_i64) -> A64Reg { num_bits: 64, reg_no: 13 } | [ 9] Cmp(A64Reg { num_bits: 64, reg_no: 12 }, A64Reg { num_bits: 64, reg_no: 13 }) -> None | [ 10] Jne() target=CodePtr(CodePtr(0x1080329dc)) -> None | [ 11] Comment() "guard known ISEQ" -> None | [ 12] And(A64Reg { num_bits: 64, reg_no: 11 }, fffffffffffffffc_u64) -> A64Reg { num_bits: 64, reg_no: 11 } || [ 13] Load(Mem64[Reg(11) + 16]) -> A64Reg { num_bits: 64, reg_no: 12 } ||| [ 14] Load(14021c870_u64) -> A64Reg { num_bits: 64, reg_no: 13 } | [ 15] Cmp(A64Reg { num_bits: 64, reg_no: 12 }, A64Reg { num_bits: 64, reg_no: 13 }) -> None | [ 16] PosMarker() -> None | [ 17] Jnz() target=CodePtr(CodePtr(0x108032a08)) -> None | [ 18] PosMarker() -> None | [ 19] Comment() "RUBY_VM_CHECK_INTS(ec)" -> None || [ 20] Load(Mem32[Reg(20) + 32]) -> A64Reg { num_bits: 32, reg_no: 12 } | [ 21] Test(A64Reg { num_bits: 32, reg_no: 12 }, A64Reg { num_bits: 32, reg_no: 12 }) -> None | [ 22] Jnz() target=SideExitPtr(CodePtr(0x1080329dc)) -> None | [ 23] Comment() "stack overflow check" -> None || [ 24] Lea(Mem64[Reg(21) + 480]) -> A64Reg { num_bits: 64, reg_no: 12 } | [ 25] Cmp(A64Reg { num_bits: 64, reg_no: 19 }, A64Reg { num_bits: 64, reg_no: 12 }) -> None | [ 26] Jbe() target=SideExitPtr(CodePtr(0x1080329dc)) -> None | [ 27] Comment() "push_splat_args" -> None || [ 28] Load(Mem64[Reg(21) - -8]) -> A64Reg { num_bits: 64, reg_no: 12 } || [ 29] Comment() "guard object is heap" -> None || [ 30] Test(A64Reg { num_bits: 64, reg_no: 12 }, 7_u64) -> None || [ 31] Jnz() target=SideExitPtr(CodePtr(0x1080329dc)) -> None || [ 32] Cmp(A64Reg { num_bits: 64, reg_no: 12 }, 0_u64) -> None || [ 33] Je() target=SideExitPtr(CodePtr(0x1080329dc)) -> None || [ 34] Comment() "guard object is array" -> None ||| [ 35] Load(Mem64[Reg(12)]) -> A64Reg { num_bits: 64, reg_no: 13 } ||| [ 36] And(A64Reg { num_bits: 64, reg_no: 13 }, 1f_u64) -> A64Reg { num_bits: 64, reg_no: 13 } || [ 37] Cmp(A64Reg { num_bits: 64, reg_no: 13 }, 7_u64) -> None || [ 38] Jne() target=SideExitPtr(CodePtr(0x1080329dc)) -> None ||| [ 39] Load(Mem64[Reg(12)]) -> A64Reg { num_bits: 64, reg_no: 13 } ||| [ 40] And(A64Reg { num_bits: 64, reg_no: 13 }, 3f8000_u64) -> A64Reg { num_bits: 64, reg_no: 13 } ||| [ 41] RShift(A64Reg { num_bits: 64, reg_no: 13 }, f_u64) -> A64Reg { num_bits: 64, reg_no: 13 } ||| [ 42] Load(Mem64[Reg(12)]) -> A64Reg { num_bits: 64, reg_no: 12 } || [ 43] Test(A64Reg { num_bits: 64, reg_no: 12 }, 2000_u64) -> None ||| [ 44] Load(Mem64[Reg(21) - -8]) -> A64Reg { num_bits: 64, reg_no: 12 } ||| [ 45] Load(Mem64[Reg(12) + 16]) -> A64Reg { num_bits: 64, reg_no: 12 } || [ 46] CSelNZ(A64Reg { num_bits: 64, reg_no: 13 }, A64Reg { num_bits: 64, reg_no: 12 }) -> A64Reg { num_bits: 64, reg_no: 13 } ||| [ 47] Load(1_i64) -> A64Reg { num_bits: 64, reg_no: 12 } | [ 48] Cmp(A64Reg { num_bits: 64, reg_no: 13 }, A64Reg { num_bits: 64, reg_no: 12 }) -> None | [ 49] Jne() target=CodePtr(CodePtr(0x1080329dc)) -> None || [ 50] Load(Mem64[Reg(21) - -8]) -> A64Reg { num_bits: 64, reg_no: 12 } ||| [ 51] Lea(Mem64[Reg(12) + 16]) -> A64Reg { num_bits: 64, reg_no: 13 } ||| [ 52] Load(Mem64[Reg(12)]) -> A64Reg { num_bits: 64, reg_no: 12 } || [ 53] Test(A64Reg { num_bits: 64, reg_no: 12 }, 2000_u64) -> None ||| [ 54] Load(Mem64[Reg(21) - -8]) -> A64Reg { num_bits: 64, reg_no: 12 } ||| [ 55] Load(Mem64[Reg(12) + 32]) -> A64Reg { num_bits: 64, reg_no: 12 } || [ 56] CSelNZ(A64Reg { num_bits: 64, reg_no: 13 }, A64Reg { num_bits: 64, reg_no: 12 }) -> A64Reg { num_bits: 64, reg_no: 13 } || [ 57] Load(Mem64[Reg(13)]) -> A64Reg { num_bits: 64, reg_no: 12 } | [ 58] Store(Mem64[Reg(21) - -8], A64Reg { num_bits: 64, reg_no: 12 }) -> None || [ 59] Load(Mem64[Reg(11)]) -> A64Reg { num_bits: 64, reg_no: 12 } || [ 60] Comment() "store caller sp" -> None ||| [ 61] Lea(Mem64[Reg(21) - -8]) -> A64Reg { num_bits: 64, reg_no: 13 } || [ 62] Store(Mem64[Reg(19) + 8], A64Reg { num_bits: 64, reg_no: 13 }) -> None || [ 63] Comment() "save PC to CFP" -> None ||| [ 64] Load(6000008c1390_u64) -> A64Reg { num_bits: 64, reg_no: 13 } || [ 65] Store(Mem64[Reg(19)], A64Reg { num_bits: 64, reg_no: 13 }) -> None ||| [ 66] Lea(Mem64[Reg(21) + 280]) -> A64Reg { num_bits: 64, reg_no: 13 } ||| [ 67] Load(Mem64[Reg(11) + 8]) -> A64Reg { num_bits: 64, reg_no: 11 } ||| [ 68] Comment() "push cme, specval, frame type" -> None ||| [ 69] Store(Mem64[Reg(13) - -24], A64Reg { num_bits: 64, reg_no: 31 }) -> None ||| [ 70] Or(A64Reg { num_bits: 64, reg_no: 11 }, 1_u64) -> A64Reg { num_bits: 64, reg_no: 11 } || [ 71] Store(Mem64[Reg(13) - -16], A64Reg { num_bits: 64, reg_no: 11 }) -> None || [ 72] Comment() "initialize locals" -> None ||| [ 73] Load(fffffffffffffee8_i64) -> A64Reg { num_bits: 64, reg_no: 11 } ||| [ 74] Add(A64Reg { num_bits: 64, reg_no: 13 }, A64Reg { num_bits: 64, reg_no: 11 }) -> A64Reg { num_bits: 64, reg_no: 11 } ==> |||| [ 75] Load(4_u64) -> Out64(75) || [ 76] Store(Mem64[InsnOut(74)], Out64(75)) -> None ||| [ 77] Load(fffffffffffffef0_i64) -> Out64(77) ||| [ 78] Add(Out64(66), Out64(77)) -> Out64(78) |||| [ 79] Load(4_u64) -> Out64(79) || [ 80] Store(Mem64[InsnOut(78)], Out64(79)) -> None ||| [ 81] Load(fffffffffffffef8_i64) -> Out64(81) ||| [ 82] Add(Out64(66), Out64(81)) -> Out64(82) |||| [ 83] Load(4_u64) -> Out64(83) || [ 84] Store(Mem64[InsnOut(82)], Out64(83)) -> None ||| [ 85] Load(4_u64) -> Out64(85) || [ 86] Store(Mem64[InsnOut(66) - -256], Out64(85)) -> None ||| [ 87] Load(4_u64) -> Out64(87) || [ 88] Store(Mem64[InsnOut(66) - -248], Out64(87)) -> None ||| [ 89] Load(4_u64) -> Out64(89) || [ 90] Store(Mem64[InsnOut(66) - -240], Out64(89)) -> None ||| [ 91] Load(4_u64) -> Out64(91) || [ 92] Store(Mem64[InsnOut(66) - -232], Out64(91)) -> None ||| [ 93] Load(4_u64) -> Out64(93) || [ 94] Store(Mem64[InsnOut(66) - -224], Out64(93)) -> None ||| [ 95] Load(4_u64) -> Out64(95) || [ 96] Store(Mem64[InsnOut(66) - -216], Out64(95)) -> None ||| [ 97] Load(4_u64) -> Out64(97) || [ 98] Store(Mem64[InsnOut(66) - -208], Out64(97)) -> None ||| [ 99] Load(4_u64) -> Out64(99) || [100] Store(Mem64[InsnOut(66) - -200], Out64(99)) -> None ||| [101] Load(4_u64) -> Out64(101) || [102] Store(Mem64[InsnOut(66) - -192], Out64(101)) -> None ||| [103] Load(4_u64) -> Out64(103) || [104] Store(Mem64[InsnOut(66) - -184], Out64(103)) -> None ||| [105] Load(4_u64) -> Out64(105) || [106] Store(Mem64[InsnOut(66) - -176], Out64(105)) -> None ||| [107] Load(4_u64) -> Out64(107) || [108] Store(Mem64[InsnOut(66) - -168], Out64(107)) -> None ||| [109] Load(4_u64) -> Out64(109) || [110] Store(Mem64[InsnOut(66) - -160], Out64(109)) -> None ||| [111] Load(4_u64) -> Out64(111) || [112] Store(Mem64[InsnOut(66) - -152], Out64(111)) -> None ||| [113] Load(4_u64) -> Out64(113) || [114] Store(Mem64[InsnOut(66) - -144], Out64(113)) -> None ||| [115] Load(4_u64) -> Out64(115) || [116] Store(Mem64[InsnOut(66) - -136], Out64(115)) -> None ||| [117] Load(4_u64) -> Out64(117) || [118] Store(Mem64[InsnOut(66) - -128], Out64(117)) -> None ||| [119] Load(4_u64) -> Out64(119) || [120] Store(Mem64[InsnOut(66) - -120], Out64(119)) -> None ||| [121] Load(4_u64) -> Out64(121) || [122] Store(Mem64[InsnOut(66) - -112], Out64(121)) -> None ||| [123] Load(4_u64) -> Out64(123) || [124] Store(Mem64[InsnOut(66) - -104], Out64(123)) -> None ||| [125] Load(4_u64) -> Out64(125) || [126] Store(Mem64[InsnOut(66) - -96], Out64(125)) -> None ||| [127] Load(4_u64) -> Out64(127) || [128] Store(Mem64[InsnOut(66) - -88], Out64(127)) -> None ||| [129] Load(4_u64) -> Out64(129) || [130] Store(Mem64[InsnOut(66) - -80], Out64(129)) -> None ||| [131] Load(4_u64) -> Out64(131) || [132] Store(Mem64[InsnOut(66) - -72], Out64(131)) -> None ||| [133] Load(4_u64) -> Out64(133) || [134] Store(Mem64[InsnOut(66) - -64], Out64(133)) -> None ||| [135] Load(4_u64) -> Out64(135) || [136] Store(Mem64[InsnOut(66) - -56], Out64(135)) -> None ||| [137] Load(4_u64) -> Out64(137) || [138] Store(Mem64[InsnOut(66) - -48], Out64(137)) -> None ||| [139] Load(4_u64) -> Out64(139) || [140] Store(Mem64[InsnOut(66) - -40], Out64(139)) -> None ||| [141] Load(4_u64) -> Out64(141) || [142] Store(Mem64[InsnOut(66) - -32], Out64(141)) -> None ||| [143] Load(22220001_u64) -> Out64(143) || [144] Store(Mem64[InsnOut(66) - -8], Out64(143)) -> None || [145] Comment() "push callee control frame" -> None || [146] Store(Mem64[Reg(19) - -16], Out64(66)) -> None || [147] Store(Mem64[Reg(19) - -56], Out64(66)) -> None ||| [148] Load(Value(VALUE(5370923120))) -> Out64(148) || [149] Store(Mem64[Reg(19) - -48], Out64(148)) -> None | [150] Store(Mem64[Reg(19) - -40], Out64(59)) -> None | [151] Store(Mem64[Reg(19) - -24], A64Reg { num_bits: 64, reg_no: 31 }) -> None | [152] Mov(A64Reg { num_bits: 64, reg_no: 21 }, Out64(66)) -> None | [153] Sub(Out64(66), 8_u64) -> Out64(153) [154] Store(Mem64[Reg(19) - -32], Out64(153)) -> None [155] Comment() "switch to new CFP" -> None | [156] Lea(Mem64[Reg(19) - -64]) -> Out64(156) [157] Mov(A64Reg { num_bits: 64, reg_no: 19 }, Out64(156)) -> None [158] Store(Mem64[Reg(20) + 16], A64Reg { num_bits: 64, reg_no: 19 }) -> None [159] PosMarker() -> None | [160] Load(108032a24_u64) -> Out64(160) [161] Store(Mem64[Reg(19) + 56], Out64(160)) -> None [162] PosMarker() -> None [163] Comment() "gen_direct_jmp: fallthrough" -> None [164] PosMarker() -> None [165] PosMarker() -> None thread '' panicked at 'internal error: entered unreachable code: Register spill not supported', ./yjit/src/backend/ir.rs:1077:33 stack backtrace: 0: 0x104c45d44 - ::fmt::h697a67b9e3817972 1: 0x104c8b90c - core::fmt::write::h9c1806db6b3cce37 2: 0x104c13570 - std::io::Write::write_fmt::hf6f15524654c436c 3: 0x104c45b78 - std::sys_common::backtrace::print::hbef5fa84cff5e4e6 4: 0x104c29390 - std::panicking::default_hook::{{closure}}::h28c8099195c7536b 5: 0x104c29054 - std::panicking::default_hook::hd22d29f2c7f8156c 6: 0x104c29aac - std::panicking::rust_panic_with_hook::h4c37bcbe28adfb13 7: 0x104c4650c - std::panicking::begin_panic_handler::{{closure}}::h75b976aa70ea6791 8: 0x104c45e80 - std::sys_common::backtrace::__rust_end_short_backtrace::heb72a15170a4f32a 9: 0x104c2968c - _rust_begin_unwind 10: 0x104c9e6c8 - core::panicking::panic_fmt::h73c0366c2442918f 11: 0x104be3bd8 - yjit::backend::arm64::::compile_with_regs::hdf6c3661c48db7f5 12: 0x104b9f74c - yjit::codegen::gen_single_block::h6159d16df004b60f 13: 0x104bd87d0 - yjit::core::gen_block_series::h8d9c40e0619dbd9b 14: 0x104bd9bd4 - yjit::core::branch_stub_hit_body::he14533b7990a7924 15: 0x104bc29d4 - yjit::cruby::with_vm_lock::h6c9b194bffea14ee 16: 0x104bdda78 - yjit::core::branch_stub_hit::hf5da647f5defa115 YJIT panicked while holding VM lock acquired at ./yjit/src/core.rs:1693. Aborting... zsh: abort RUST_BACKTRACE=full rails s