diff --git a/src/engine/x86-64/X86_64SinglePassCompiler.v3 b/src/engine/x86-64/X86_64SinglePassCompiler.v3 index fe3b3097..d3c2f845 100644 --- a/src/engine/x86-64/X86_64SinglePassCompiler.v3 +++ b/src/engine/x86-64/X86_64SinglePassCompiler.v3 @@ -467,6 +467,9 @@ class X86_64SinglePassCompiler extends SinglePassCompiler { def visit_I32X4_ADD() { do_op2_x_x(ValueKind.V128, asm.paddd_s_s); } def visit_I32X4_SUB() { do_op2_x_x(ValueKind.V128, asm.psubd_s_s); } def visit_I32X4_MUL() { do_op2_x_x(ValueKind.V128, asm.pmulld_s_s); } + def visit_I16X8_ADD() { do_op2_x_x(ValueKind.V128, asm.paddw_s_s); } + def visit_I16X8_SUB() { do_op2_x_x(ValueKind.V128, asm.psubw_s_s); } + def visit_I16X8_MUL() { do_op2_x_x(ValueKind.V128, asm.pmullw_s_s); } private def visit_V128_NEG(emit: (X86_64Xmmr, X86_64Xmmr) -> T) -> void { var sv = popReg(), r = X(sv.reg); @@ -475,8 +478,8 @@ class X86_64SinglePassCompiler extends SinglePassCompiler { state.push(sv.kindFlagsMatching(ValueKind.V128, IN_REG), sv.reg, 0); } def visit_I8X16_NEG() { visit_V128_NEG(mmasm.emit_i8x16_neg); } - def visit_I32X4_NEG() { visit_V128_NEG(mmasm.emit_i32x4_neg); } + def visit_I16X8_NEG() { visit_V128_NEG(mmasm.emit_i16x8_neg); } def visit_V128_BITSELECT() { var c = popReg();