diff options
| author | Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> | 2022-05-19 16:17:09 -0400 |
|---|---|---|
| committer | Takashi Kokubun <takashikkbn@gmail.com> | 2022-08-29 08:46:53 -0700 |
| commit | 151cc55baa8d73969a57228d3a18458e5fe663ed (patch) | |
| tree | 2bec92dbd8332013f68541a41fd77b42b3bbd589 | |
| parent | 1b2ee62149d5fa8d8cbe2097f9fd7a3af31989c2 (diff) | |
Fix issue with load, gen_dup
| -rw-r--r-- | yjit/src/backend/x86_64/mod.rs | 17 | ||||
| -rw-r--r-- | yjit/src/codegen.rs | 16 |
2 files changed, 15 insertions, 18 deletions
diff --git a/yjit/src/backend/x86_64/mod.rs b/yjit/src/backend/x86_64/mod.rs index 65259a72f6..03da5e4d10 100644 --- a/yjit/src/backend/x86_64/mod.rs +++ b/yjit/src/backend/x86_64/mod.rs @@ -98,14 +98,13 @@ impl Assembler Op::Label => {}, - Op::Add => add(cb, insn.opnds[0].into(), insn.opnds[1].into()), - - /* - Load - Store, - */ + Op::Add => { + assert_eq!(insn.out, insn.opnds[0]); + add(cb, insn.opnds[0].into(), insn.opnds[1].into()) + }, - Op::Load => add(cb, insn.out.into(), insn.opnds[0].into()), + Op::Load => mov(cb, insn.out.into(), insn.opnds[0].into()), + //Store Op::Mov => mov(cb, insn.opnds[0].into(), insn.opnds[1].into()), // Test and set flags @@ -125,10 +124,10 @@ impl Assembler // Optimize and compile the stored instructions pub fn compile_with_regs(self, cb: &mut CodeBlock, regs: Vec<Reg>) { - dbg!(self + self .target_split() .split_loads() - .alloc_regs(regs)) + .alloc_regs(regs) .target_emit(cb); } } diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs index 28a2e6ca34..1799036e46 100644 --- a/yjit/src/codegen.rs +++ b/yjit/src/codegen.rs @@ -3,6 +3,7 @@ use crate::asm::x86_64::*; use crate::asm::*; +use crate::backend::ir::*; use crate::core::*; use crate::cruby::*; use crate::invariants::*; @@ -885,6 +886,10 @@ fn gen_pop( KeepCompiling } + + + +/* fn gen_dup( _jit: &mut JITState, ctx: &mut Context, @@ -900,17 +905,10 @@ fn gen_dup( KeepCompiling } - - - - - - - -use crate::backend::ir::*; +*/ #[allow(dead_code)] -fn gen_dup_ir( +fn gen_dup( _jit: &mut JITState, ctx: &mut Context, cb: &mut CodeBlock, |
