summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>2022-05-19 16:17:09 -0400
committerTakashi Kokubun <takashikkbn@gmail.com>2022-08-29 08:46:53 -0700
commit151cc55baa8d73969a57228d3a18458e5fe663ed (patch)
tree2bec92dbd8332013f68541a41fd77b42b3bbd589
parent1b2ee62149d5fa8d8cbe2097f9fd7a3af31989c2 (diff)
Fix issue with load, gen_dup
-rw-r--r--yjit/src/backend/x86_64/mod.rs17
-rw-r--r--yjit/src/codegen.rs16
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,