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

ruby-changes:69270

From: Maxime <ko1@a...>
Date: Thu, 21 Oct 2021 08:24:25 +0900 (JST)
Subject: [ruby-changes:69270] 79015926eb (master): Try to get getblockparamproxy to support level > 0

https://git.ruby-lang.org/ruby.git/commit/?id=79015926eb

From 79015926eb81ac93700146d42c343f568d3ddfbb Mon Sep 17 00:00:00 2001
From: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@s...>
Date: Fri, 24 Sep 2021 11:08:23 -0400
Subject: Try to get getblockparamproxy to support level > 0

---
 yjit_codegen.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/yjit_codegen.c b/yjit_codegen.c
index c0c27029ca..c05ec53a38 100644
--- a/yjit_codegen.c
+++ b/yjit_codegen.c
@@ -4133,15 +4133,10 @@ gen_getblockparamproxy(jitstate_t* jit, ctx_t* ctx, codeblock_t* cb) https://github.com/ruby/ruby/blob/trunk/yjit_codegen.c#L4133
     uint8_t *side_exit = yjit_side_exit(jit, ctx);
 
     // EP level
-    VALUE level = jit_get_arg(jit, 1);
-
-    if (level != 0) {
-        // Bail on non zero level to make getting the ep simple
-        return YJIT_CANT_COMPILE;
-    }
+    uint32_t level = (uint32_t)jit_get_arg(jit, 1);
 
     // Load environment pointer EP from CFP
-    mov(cb, REG0, member_opnd(REG_CFP, rb_control_frame_t, ep));
+    gen_get_ep(cb, REG0, level);
 
     // Bail when VM_ENV_FLAGS(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM) is non zero
     test(cb, mem_opnd(64, REG0, SIZEOF_VALUE * VM_ENV_DATA_INDEX_FLAGS), imm_opnd(VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM));
-- 
cgit v1.2.1


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

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