summaryrefslogtreecommitdiff
path: root/lib/ruby_vm
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2023-03-11 22:24:37 -0800
committerTakashi Kokubun <takashikkbn@gmail.com>2023-03-11 22:25:00 -0800
commit9501283dea70c94a2df8fbb83c589a0dfcda273f (patch)
treec81e9272b658b3e9cfbe10f629683cbd6a089e05 /lib/ruby_vm
parent846fc356cb91cbfbd9cf9699ed1174b21b072dd8 (diff)
RJIT: Leave it to NoMatchingPatternError
instead of manually implementing NotImplementedError
Diffstat (limited to 'lib/ruby_vm')
-rw-r--r--lib/ruby_vm/rjit/assembler.rb62
1 files changed, 0 insertions, 62 deletions
diff --git a/lib/ruby_vm/rjit/assembler.rb b/lib/ruby_vm/rjit/assembler.rb
index f4a7c235ec..a825e8a81d 100644
--- a/lib/ruby_vm/rjit/assembler.rb
+++ b/lib/ruby_vm/rjit/assembler.rb
@@ -107,8 +107,6 @@ module RubyVM::RJIT
opcode: 0x01,
mod_rm: ModRM[mod: Mod11, reg: src_reg, rm: dst_reg],
)
- else
- raise NotImplementedError, "add: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -144,8 +142,6 @@ module RubyVM::RJIT
mod_rm: ModRM[mod: Mod01, reg: dst_reg, rm: src_reg],
disp: imm8(src_disp),
)
- else
- raise NotImplementedError, "and: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -164,8 +160,6 @@ module RubyVM::RJIT
opcode: 0xff,
mod_rm: ModRM[mod: Mod11, reg: 2, rm: dst_reg],
)
- else
- raise NotImplementedError, "call: not-implemented operands: #{dst.inspect}"
end
end
@@ -180,8 +174,6 @@ module RubyVM::RJIT
opcode: [0x0f, 0x44],
mod_rm: ModRM[mod: Mod11, reg: dst_reg, rm: src_reg],
)
- else
- raise NotImplementedError, "cmove: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -196,8 +188,6 @@ module RubyVM::RJIT
opcode: [0x0f, 0x4f],
mod_rm: ModRM[mod: Mod11, reg: dst_reg, rm: src_reg],
)
- else
- raise NotImplementedError, "cmovg: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -212,8 +202,6 @@ module RubyVM::RJIT
opcode: [0x0f, 0x4d],
mod_rm: ModRM[mod: Mod11, reg: dst_reg, rm: src_reg],
)
- else
- raise NotImplementedError, "cmovge: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -228,8 +216,6 @@ module RubyVM::RJIT
opcode: [0x0f, 0x4c],
mod_rm: ModRM[mod: Mod11, reg: dst_reg, rm: src_reg],
)
- else
- raise NotImplementedError, "cmovl: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -244,8 +230,6 @@ module RubyVM::RJIT
opcode: [0x0f, 0x4e],
mod_rm: ModRM[mod: Mod11, reg: dst_reg, rm: src_reg],
)
- else
- raise NotImplementedError, "cmovle: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -260,8 +244,6 @@ module RubyVM::RJIT
opcode: [0x0f, 0x45],
mod_rm: ModRM[mod: Mod11, reg: dst_reg, rm: src_reg],
)
- else
- raise NotImplementedError, "cmovnz: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -286,8 +268,6 @@ module RubyVM::RJIT
mod_rm: ModRM[mod: Mod01, reg: dst_reg, rm: src_reg],
disp: imm8(src_disp),
)
- else
- raise NotImplementedError, "cmovz: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -374,8 +354,6 @@ module RubyVM::RJIT
opcode: 0x39,
mod_rm: ModRM[mod: Mod11, reg: right_reg, rm: left_reg],
)
- else
- raise NotImplementedError, "cmp: not-implemented operands: #{left.inspect}, #{right.inspect}"
end
end
@@ -389,8 +367,6 @@ module RubyVM::RJIT
in Integer => dst_addr
# 0F 86 cd
insn(opcode: [0x0f, 0x86], imm: rel32(dst_addr))
- else
- raise NotImplementedError, "jbe: not-implemented operands: #{dst.inspect}"
end
end
@@ -404,8 +380,6 @@ module RubyVM::RJIT
in Integer => dst_addr
# 0F 84 cd
insn(opcode: [0x0f, 0x84], imm: rel32(dst_addr))
- else
- raise NotImplementedError, "je: not-implemented operands: #{dst.inspect}"
end
end
@@ -415,8 +389,6 @@ module RubyVM::RJIT
in Integer => dst_addr
# 0F 8C cd
insn(opcode: [0x0f, 0x8c], imm: rel32(dst_addr))
- else
- raise NotImplementedError, "jl: not-implemented operands: #{dst.inspect}"
end
end
@@ -438,8 +410,6 @@ module RubyVM::RJIT
in Symbol => dst_reg if r64?(dst_reg)
# FF /4
insn(opcode: 0xff, mod_rm: ModRM[mod: Mod11, reg: 4, rm: dst_reg])
- else
- raise NotImplementedError, "jmp: not-implemented operands: #{dst.inspect}"
end
end
@@ -449,8 +419,6 @@ module RubyVM::RJIT
in Integer => dst_addr
# 0F 85 cd
insn(opcode: [0x0f, 0x85], imm: rel32(dst_addr))
- else
- raise NotImplementedError, "jne: not-implemented operands: #{dst.inspect}"
end
end
@@ -464,8 +432,6 @@ module RubyVM::RJIT
in Integer => dst_addr
# 0F 85 cd
insn(opcode: [0x0f, 0x85], imm: rel32(dst_addr))
- else
- raise NotImplementedError, "jnz: not-implemented operands: #{dst.inspect}"
end
end
@@ -475,8 +441,6 @@ module RubyVM::RJIT
in Integer => dst_addr
# 0F 80 cd
insn(opcode: [0x0f, 0x80], imm: rel32(dst_addr))
- else
- raise NotImplementedError, "jo: not-implemented operands: #{dst.inspect}"
end
end
@@ -490,8 +454,6 @@ module RubyVM::RJIT
in Integer => dst_addr
# 0F 84 cd
insn(opcode: [0x0f, 0x84], imm: rel32(dst_addr))
- else
- raise NotImplementedError, "jz: not-implemented operands: #{dst.inspect}"
end
end
@@ -517,8 +479,6 @@ module RubyVM::RJIT
mod_rm: ModRM[mod: Mod10, reg: dst_reg, rm: src_reg],
disp: imm32(src_disp),
)
- else
- raise NotImplementedError, "lea: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -602,8 +562,6 @@ module RubyVM::RJIT
rd: dst_reg,
imm: imm64(src_imm),
)
- else
- raise NotImplementedError, "mov: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
in Array[Symbol => dst_reg]
case src
@@ -626,8 +584,6 @@ module RubyVM::RJIT
opcode: 0x89,
mod_rm: ModRM[mod: Mod00, reg: src_reg, rm: dst_reg],
)
- else
- raise NotImplementedError, "mov: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
in DwordPtr[reg: dst_reg, disp: dst_disp]
case src
@@ -641,8 +597,6 @@ module RubyVM::RJIT
disp: dst_disp,
imm: imm32(src_imm),
)
- else
- raise NotImplementedError, "mov: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
in Array[Symbol => dst_reg, Integer => dst_disp]
# Optimize encoding when disp is 0
@@ -691,11 +645,7 @@ module RubyVM::RJIT
mod_rm: ModRM[mod: Mod10, reg: src_reg, rm: dst_reg],
disp: imm32(dst_disp),
)
- else
- raise NotImplementedError, "mov: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
- else
- raise NotImplementedError, "mov: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -731,8 +681,6 @@ module RubyVM::RJIT
mod_rm: ModRM[mod: Mod01, reg: dst_reg, rm: src_reg],
disp: imm8(src_disp),
)
- else
- raise NotImplementedError, "or: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -743,8 +691,6 @@ module RubyVM::RJIT
# 50+rd
# O: Operand 1: opcode + rd (r)
insn(opcode: 0x50, rd: src_reg)
- else
- raise NotImplementedError, "push: not-implemented operands: #{src.inspect}"
end
end
@@ -755,8 +701,6 @@ module RubyVM::RJIT
# 58+ rd
# O: Operand 1: opcode + rd (r)
insn(opcode: 0x58, rd: dst_reg)
- else
- raise NotImplementedError, "pop: not-implemented operands: #{dst.inspect}"
end
end
@@ -777,8 +721,6 @@ module RubyVM::RJIT
mod_rm: ModRM[mod: Mod11, reg: 7, rm: dst_reg],
imm: imm8(src_imm),
)
- else
- raise NotImplementedError, "sar: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -803,8 +745,6 @@ module RubyVM::RJIT
opcode: 0x29,
mod_rm: ModRM[mod: Mod11, reg: src_reg, rm: dst_reg],
)
- else
- raise NotImplementedError, "sub: not-implemented operands: #{dst.inspect}, #{src.inspect}"
end
end
@@ -869,8 +809,6 @@ module RubyVM::RJIT
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
end