diff options
| author | Alan Wu <XrXr@users.noreply.github.com> | 2022-07-22 16:24:18 -0400 |
|---|---|---|
| committer | Takashi Kokubun <takashikkbn@gmail.com> | 2022-08-29 08:47:04 -0700 |
| commit | 813df1f27aa52a3050d90dab23bc72093da00e6c (patch) | |
| tree | 2a514fc12e2a224208eb43e4d080e8bdad802d39 /yjit/src/backend/arm64/mod.rs | |
| parent | 133ad38777db991e20a1feba1acbfe5d97cc2fa0 (diff) | |
Add LiveReg IR instruction to fix stats leave exit code (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.
Diffstat (limited to 'yjit/src/backend/arm64/mod.rs')
| -rw-r--r-- | yjit/src/backend/arm64/mod.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/yjit/src/backend/arm64/mod.rs b/yjit/src/backend/arm64/mod.rs index 9726a0f8f2..c6cd1b882c 100644 --- a/yjit/src/backend/arm64/mod.rs +++ b/yjit/src/backend/arm64/mod.rs @@ -792,6 +792,7 @@ impl Assembler Op::CSelGE => { csel(cb, insn.out.into(), insn.opnds[0].into(), insn.opnds[1].into(), Condition::GE); } + Op::LiveReg => (), // just a reg alloc signal, no code }; } |
