summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>2022-06-20 13:13:46 -0400
committerTakashi Kokubun <takashikkbn@gmail.com>2022-08-29 08:46:57 -0700
commit4c7d7080d2fdd07d84de63231618a090fa5addad (patch)
tree88d57cdb6f8d5265a5c7c970a5ac9937ae999a46
parentc5ae52630f9a362579608f27cfbd7a1f08c4d77f (diff)
Port over gen_putspecialobject
-rw-r--r--yjit/src/codegen.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs
index 63e8bbcf59..ba080113f4 100644
--- a/yjit/src/codegen.rs
+++ b/yjit/src/codegen.rs
@@ -1027,19 +1027,18 @@ fn gen_putself(
KeepCompiling
}
-/*
fn gen_putspecialobject(
jit: &mut JITState,
ctx: &mut Context,
- cb: &mut CodeBlock,
+ asm: &mut Assembler,
_ocb: &mut OutlinedCb,
) -> CodegenStatus {
let object_type = jit_get_arg(jit, 0);
if object_type == VALUE(VM_SPECIAL_OBJECT_VMCORE.as_usize()) {
- let stack_top: X86Opnd = ctx.stack_push(Type::UnknownHeap);
- jit_mov_gc_ptr(jit, cb, REG0, unsafe { rb_mRubyVMFrozenCore });
- mov(cb, stack_top, REG0);
+ let stack_top = ctx.stack_push(Type::UnknownHeap);
+ let frozen_core = unsafe { rb_mRubyVMFrozenCore };
+ asm.mov(stack_top, frozen_core.into());
KeepCompiling
} else {
// TODO: implement for VM_SPECIAL_OBJECT_CBASE and
@@ -1048,6 +1047,7 @@ fn gen_putspecialobject(
}
}
+/*
// set Nth stack entry to stack top
fn gen_setn(
jit: &mut JITState,
@@ -5961,7 +5961,7 @@ fn get_gen_fn(opcode: VALUE) -> Option<InsnGenFn> {
YARVINSN_putobject_INT2FIX_0_ => Some(gen_putobject_int2fix),
YARVINSN_putobject_INT2FIX_1_ => Some(gen_putobject_int2fix),
YARVINSN_putself => Some(gen_putself),
- //YARVINSN_putspecialobject => Some(gen_putspecialobject),
+ YARVINSN_putspecialobject => Some(gen_putspecialobject),
//YARVINSN_setn => Some(gen_setn),
//YARVINSN_topn => Some(gen_topn),
//YARVINSN_adjuststack => Some(gen_adjuststack),