[前][次][番号順一覧][スレッド一覧]

ruby-changes:73112

From: Maxime <ko1@a...>
Date: Tue, 30 Aug 2022 00:51:37 +0900 (JST)
Subject: [ruby-changes:73112] 151cc55baa (master): Fix issue with load, gen_dup

https://git.ruby-lang.org/ruby.git/commit/?id=151cc55baa

From 151cc55baa8d73969a57228d3a18458e5fe663ed Mon Sep 17 00:00:00 2001
From: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@s...>
Date: Thu, 19 May 2022 16:17:09 -0400
Subject: Fix issue with load, gen_dup

---
 yjit/src/backend/x86_64/mod.rs | 17 ++++++++---------
 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 https://github.com/ruby/ruby/blob/trunk/yjit/src/backend/x86_64/mod.rs#L98
 
                 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 https://github.com/ruby/ruby/blob/trunk/yjit/src/backend/x86_64/mod.rs#L124
     // 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 @@ https://github.com/ruby/ruby/blob/trunk/yjit/src/codegen.rs#L3
 
 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( https://github.com/ruby/ruby/blob/trunk/yjit/src/codegen.rs#L886
     KeepCompiling
 }
 
+
+
+
+/*
 fn gen_dup(
     _jit: &mut JITState,
     ctx: &mut Context,
@@ -900,17 +905,10 @@ fn gen_dup( https://github.com/ruby/ruby/blob/trunk/yjit/src/codegen.rs#L905
 
     KeepCompiling
 }
-
-
-
-
-
-
-
-use crate::backend::ir::*;
+*/
 
 #[allow(dead_code)]
-fn gen_dup_ir(
+fn gen_dup(
     _jit: &mut JITState,
     ctx: &mut Context,
     cb: &mut CodeBlock,
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]