summaryrefslogtreecommitdiff
path: root/lib/ruby_vm/mjit/assembler.rb
diff options
context:
space:
mode:
authorTakashi Kokubun <[email protected]>2023-03-03 21:50:49 -0800
committerTakashi Kokubun <[email protected]>2023-03-05 23:28:59 -0800
commit9fa127416a24312ce2f356c3317f6ff2520977b5 (patch)
tree980dba2184804ed9104128df1441e5bc2a0b4ec5 /lib/ruby_vm/mjit/assembler.rb
parent3b38fe028035a024095dedffb4c8a1efc4f320ce (diff)
Implement protected
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/7448
Diffstat (limited to 'lib/ruby_vm/mjit/assembler.rb')
-rw-r--r--lib/ruby_vm/mjit/assembler.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/ruby_vm/mjit/assembler.rb b/lib/ruby_vm/mjit/assembler.rb
index 9e28f6cef3..20cad72a39 100644
--- a/lib/ruby_vm/mjit/assembler.rb
+++ b/lib/ruby_vm/mjit/assembler.rb
@@ -828,6 +828,15 @@ module RubyVM::MJIT
opcode: 0x85,
mod_rm: ModRM[mod: Mod11, reg: right_reg, rm: left_reg],
)
+ # TEST r/m64, r64 (Mod 11: reg)
+ in [Symbol => left_reg, Symbol => right_reg] if r64?(left_reg) && r64?(right_reg)
+ # REX.W + 85 /r
+ # MR: Operand 1: ModRM:r/m (r), Operand 2: ModRM:reg (r)
+ insn(
+ prefix: REX_W,
+ opcode: 0x85,
+ mod_rm: ModRM[mod: Mod11, reg: right_reg, rm: left_reg],
+ )
else
raise NotImplementedError, "test: not-implemented operands: #{left.inspect}, #{right.inspect}"
end