mirror of
https://github.com/ruby/ruby.git
synced 2025-08-26 22:45:03 +02:00
Properly return a value from the stack as well
This commit is contained in:
parent
145c937f3f
commit
dfa19a1658
2 changed files with 11 additions and 2 deletions
|
@ -18,7 +18,7 @@ module RubyVM::MJIT
|
||||||
asm.mov([:rdi, C.rb_execution_context_t.offsetof(:cfp)], :rsi) # ec->cfp = rsi
|
asm.mov([:rdi, C.rb_execution_context_t.offsetof(:cfp)], :rsi) # ec->cfp = rsi
|
||||||
|
|
||||||
# return a value
|
# return a value
|
||||||
asm.mov(:rax, 1001)
|
asm.mov(:rax, [:rbx])
|
||||||
asm.ret
|
asm.ret
|
||||||
EndBlock
|
EndBlock
|
||||||
end
|
end
|
||||||
|
|
|
@ -73,7 +73,16 @@ module RubyVM::MJIT
|
||||||
mod_rm: mod_rm(mod: 0b01, reg: reg_code(src_reg), rm: reg_code(dst_reg)), # Mod 01: [reg]+disp8
|
mod_rm: mod_rm(mod: 0b01, reg: reg_code(src_reg), rm: reg_code(dst_reg)), # Mod 01: [reg]+disp8
|
||||||
disp: dst_offset,
|
disp: dst_offset,
|
||||||
)
|
)
|
||||||
# MOV r64, r/m64
|
# MOV r64, r/m64 (Mod 00)
|
||||||
|
in [Symbol => dst_reg, [Symbol => src_reg]] if r_reg?(dst_reg) && r_reg?(src_reg)
|
||||||
|
# REX.W + 8B /r
|
||||||
|
# RM: Operand 1: ModRM:reg (w), Operand 2: ModRM:r/m (r)
|
||||||
|
insn(
|
||||||
|
prefix: REX_W,
|
||||||
|
opcode: 0x8b,
|
||||||
|
mod_rm: mod_rm(mod: 0b00, reg: reg_code(dst_reg), rm: reg_code(src_reg)), # Mod 00: [reg]
|
||||||
|
)
|
||||||
|
# MOV r64, r/m64 (Mod 01)
|
||||||
in [Symbol => dst_reg, [Symbol => src_reg, Integer => src_offset]] if r_reg?(dst_reg) && r_reg?(src_reg) && src_offset <= 0xff
|
in [Symbol => dst_reg, [Symbol => src_reg, Integer => src_offset]] if r_reg?(dst_reg) && r_reg?(src_reg) && src_offset <= 0xff
|
||||||
# REX.W + 8B /r
|
# REX.W + 8B /r
|
||||||
# RM: Operand 1: ModRM:reg (w), Operand 2: ModRM:r/m (r)
|
# RM: Operand 1: ModRM:reg (w), Operand 2: ModRM:r/m (r)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue