mirror of
https://github.com/ruby/ruby.git
synced 2025-08-26 14:34:39 +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
|
||||
|
||||
# return a value
|
||||
asm.mov(:rax, 1001)
|
||||
asm.mov(:rax, [:rbx])
|
||||
asm.ret
|
||||
EndBlock
|
||||
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
|
||||
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
|
||||
# REX.W + 8B /r
|
||||
# RM: Operand 1: ModRM:reg (w), Operand 2: ModRM:r/m (r)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue