Index: src/x64/disasm-x64.cc |
diff --git a/src/x64/disasm-x64.cc b/src/x64/disasm-x64.cc |
index 05b199d558df567d3fae301a15a84713d61313d6..a9532dc3ad9b97f8f238cefa7450b26c002dbed4 100644 |
--- a/src/x64/disasm-x64.cc |
+++ b/src/x64/disasm-x64.cc |
@@ -956,6 +956,12 @@ int DisassemblerX64::AVXInstruction(byte* data) { |
int mod, regop, rm, vvvv = vex_vreg(); |
get_modrm(*current, &mod, ®op, &rm); |
switch (opcode) { |
+ case 0x0a: |
+ AppendToBuffer("vroundss %s,%s,", NameOfXMMRegister(regop), |
+ NameOfXMMRegister(vvvv)); |
+ current += PrintRightXMMOperand(current); |
+ AppendToBuffer(",0x%x", *current++); |
+ break; |
case 0x0b: |
AppendToBuffer("vroundsd %s,%s,", NameOfXMMRegister(regop), |
NameOfXMMRegister(vvvv)); |
@@ -1516,6 +1522,12 @@ int DisassemblerX64::TwoByteOpcodeInstruction(byte* data) { |
current += PrintRightOperand(current); |
AppendToBuffer(",%s,%d", NameOfXMMRegister(regop), (*current) & 3); |
current += 1; |
+ } else if (third_byte == 0x0a) { |
+ get_modrm(*current, &mod, ®op, &rm); |
+ AppendToBuffer("roundss %s,", NameOfXMMRegister(regop)); |
+ current += PrintRightXMMOperand(current); |
+ AppendToBuffer(",0x%x", (*current) & 3); |
+ current += 1; |
} else if (third_byte == 0x0b) { |
get_modrm(*current, &mod, ®op, &rm); |
// roundsd xmm, xmm/m64, imm8 |