diff options
Diffstat (limited to 'lib/ruby_vm/rjit/assembler.rb')
-rw-r--r-- | lib/ruby_vm/rjit/assembler.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/ruby_vm/rjit/assembler.rb b/lib/ruby_vm/rjit/assembler.rb index 6bd654fd3e..bd8f8ad1d6 100644 --- a/lib/ruby_vm/rjit/assembler.rb +++ b/lib/ruby_vm/rjit/assembler.rb @@ -838,6 +838,20 @@ module RubyVM::RJIT end end + def xor(dst, src) + case [dst, src] + # XOR r/m64, r64 (Mod 11: reg) + in [R64 => dst_reg, R64 => src_reg] + # REX.W + 31 /r + # MR: Operand 1: ModRM:r/m (r, w), Operand 2: ModRM:reg (r) + insn( + prefix: REX_W, + opcode: 0x31, + mod_rm: ModRM[mod: Mod11, reg: src_reg, rm: dst_reg], + ) + end + end + # # Utilities # |