diff options
author | Alan Wu <XrXr@users.noreply.github.com> | 2022-06-21 19:41:06 -0400 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2022-08-29 08:46:58 -0700 |
commit | d9163280782086b57119abc9478580a6b3efd2c3 (patch) | |
tree | 0f12b0579b6a4567e073b7d0068d065a0ba31933 /yjit/src/asm/x86_64 | |
parent | 0a96a3918970f1852e1bd691c826c904bccd60b8 (diff) | |
download | ruby-d9163280782086b57119abc9478580a6b3efd2c3.tar.gz |
Conscise IR disassembly (https://github.com/Shopify/ruby/pull/302)
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)
```
Diffstat (limited to 'yjit/src/asm/x86_64')
0 files changed, 0 insertions, 0 deletions