| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 86c7c0a commit 0e6976f
6 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -36,7 +36,7 @@ | |||
| 36 | 36 | ||
| 37 | 37 | # Reset this number to 0 on major V8 upgrades. | |
| 38 | 38 | # Increment by one for each non-official patch applied to deps/v8. | |
| 39 | - 'v8_embedder_string': '-node.35', | ||
| 39 | + 'v8_embedder_string': '-node.36', | ||
| 40 | 40 | ||
| 41 | 41 | ##### V8 defaults for Node.js ##### | |
| 42 | 42 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -959,6 +959,9 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase { | |||
| 959 | 959 | void movapd(XMMRegister dst, Operand src) { | |
| 960 | 960 | sse2_instr(dst, src, 0x66, 0x0F, 0x28); | |
| 961 | 961 | } | |
| 962 | + void movupd(XMMRegister dst, Operand src) { | ||
| 963 | + sse2_instr(dst, src, 0x66, 0x0F, 0x10); | ||
| 964 | + } | ||
| 962 | 965 | ||
| 963 | 966 | void movmskpd(Register dst, XMMRegister src); | |
| 964 | 967 | void movmskps(Register dst, XMMRegister src); | |
@@ -1331,6 +1334,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase { | |||
| 1331 | 1334 | void vmovapd(XMMRegister dst, Operand src) { vpd(0x28, dst, xmm0, src); } | |
| 1332 | 1335 | void vmovups(XMMRegister dst, XMMRegister src) { vmovups(dst, Operand(src)); } | |
| 1333 | 1336 | void vmovups(XMMRegister dst, Operand src) { vps(0x10, dst, xmm0, src); } | |
| 1337 | + void vmovupd(XMMRegister dst, Operand src) { vpd(0x10, dst, xmm0, src); } | ||
| 1334 | 1338 | void vshufps(XMMRegister dst, XMMRegister src1, XMMRegister src2, byte imm8) { | |
| 1335 | 1339 | vshufps(dst, src1, Operand(src2), imm8); | |
| 1336 | 1340 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -292,6 +292,7 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { | |||
| 292 | 292 | AVX_OP2_WITH_TYPE(Movaps, movaps, XMMRegister, XMMRegister) | |
| 293 | 293 | AVX_OP2_WITH_TYPE(Movapd, movapd, XMMRegister, XMMRegister) | |
| 294 | 294 | AVX_OP2_WITH_TYPE(Movapd, movapd, XMMRegister, const Operand&) | |
| 295 | + AVX_OP2_WITH_TYPE(Movupd, movupd, XMMRegister, const Operand&) | ||
| 295 | 296 | AVX_OP2_WITH_TYPE(Pmovmskb, pmovmskb, Register, XMMRegister) | |
| 296 | 297 | AVX_OP2_WITH_TYPE(Movmskps, movmskps, Register, XMMRegister) | |
| 297 | 298 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1966,7 +1966,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( | |||
| 1966 | 1966 | tmp = i.TempSimd128Register(0); | |
| 1967 | 1967 | // The minpd instruction doesn't propagate NaNs and +0's in its first | |
| 1968 | 1968 | // operand. Perform minpd in both orders, merge the resuls, and adjust. | |
| 1969 | - __ Movapd(tmp, src1); | ||
| 1969 | + __ Movupd(tmp, src1); | ||
| 1970 | 1970 | __ Minpd(tmp, tmp, src); | |
| 1971 | 1971 | __ Minpd(dst, src, src1); | |
| 1972 | 1972 | // propagate -0's and NaNs, which may be non-canonical. | |
@@ -1985,7 +1985,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( | |||
| 1985 | 1985 | tmp = i.TempSimd128Register(0); | |
| 1986 | 1986 | // The maxpd instruction doesn't propagate NaNs and +0's in its first | |
| 1987 | 1987 | // operand. Perform maxpd in both orders, merge the resuls, and adjust. | |
| 1988 | - __ Movapd(tmp, src1); | ||
| 1988 | + __ Movupd(tmp, src1); | ||
| 1989 | 1989 | __ Maxpd(tmp, tmp, src); | |
| 1990 | 1990 | __ Maxpd(dst, src, src1); | |
| 1991 | 1991 | // Find discrepancies. | |
@@ -2375,7 +2375,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( | |||
| 2375 | 2375 | XMMRegister dst = i.OutputSimd128Register(); | |
| 2376 | 2376 | Operand src1 = i.InputOperand(1); | |
| 2377 | 2377 | // See comment above for correction of maxps. | |
| 2378 | - __ movaps(kScratchDoubleReg, src1); | ||
| 2378 | + __ vmovups(kScratchDoubleReg, src1); | ||
| 2379 | 2379 | __ vmaxps(kScratchDoubleReg, kScratchDoubleReg, dst); | |
| 2380 | 2380 | __ vmaxps(dst, dst, src1); | |
| 2381 | 2381 | __ vxorps(dst, dst, kScratchDoubleReg); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1161,6 +1161,10 @@ int DisassemblerIA32::AVXInstruction(byte* data) { | |||
| 1161 | 1161 | int mod, regop, rm, vvvv = vex_vreg(); | |
| 1162 | 1162 | get_modrm(*current, &mod, ®op, &rm); | |
| 1163 | 1163 | switch (opcode) { | |
| 1164 | + case 0x10: | ||
| 1165 | + AppendToBuffer("vmovupd %s,", NameOfXMMRegister(regop)); | ||
| 1166 | + current += PrintRightXMMOperand(current); | ||
| 1167 | + break; | ||
| 1164 | 1168 | case 0x28: | |
| 1165 | 1169 | AppendToBuffer("vmovapd %s,", NameOfXMMRegister(regop)); | |
| 1166 | 1170 | current += PrintRightXMMOperand(current); | |
@@ -2090,7 +2094,13 @@ int DisassemblerIA32::InstructionDecode(v8::internal::Vector<char> out_buffer, | |||
| 2090 | 2094 | data += 2; | |
| 2091 | 2095 | } else if (*data == 0x0F) { | |
| 2092 | 2096 | data++; | |
| 2093 | - if (*data == 0x28) { | ||
| 2097 | + if (*data == 0x10) { | ||
| 2098 | + data++; | ||
| 2099 | + int mod, regop, rm; | ||
| 2100 | + get_modrm(*data, &mod, ®op, &rm); | ||
| 2101 | + AppendToBuffer("movupd %s,", NameOfXMMRegister(regop)); | ||
| 2102 | + data += PrintRightXMMOperand(data); | ||
| 2103 | + } else if (*data == 0x28) { | ||
| 2094 | 2104 | data++; | |
| 2095 | 2105 | int mod, regop, rm; | |
| 2096 | 2106 | get_modrm(*data, &mod, ®op, &rm); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -473,6 +473,7 @@ TEST(DisasmIa320) { | |||
| 473 | 473 | ||
| 474 | 474 | __ movapd(xmm0, xmm1); | |
| 475 | 475 | __ movapd(xmm0, Operand(edx, 4)); | |
| 476 | + __ movupd(xmm0, Operand(edx, 4)); | ||
| 476 | 477 | ||
| 477 | 478 | __ movd(xmm0, edi); | |
| 478 | 479 | __ movd(xmm0, Operand(ebx, ecx, times_4, 10000)); | |
@@ -689,6 +690,7 @@ TEST(DisasmIa320) { | |||
| 689 | 690 | __ vmovaps(xmm0, xmm1); | |
| 690 | 691 | __ vmovapd(xmm0, xmm1); | |
| 691 | 692 | __ vmovapd(xmm0, Operand(ebx, ecx, times_4, 10000)); | |
| 693 | + __ vmovupd(xmm0, Operand(ebx, ecx, times_4, 10000)); | ||
| 692 | 694 | __ vshufps(xmm0, xmm1, xmm2, 3); | |
| 693 | 695 | __ vshufps(xmm0, xmm1, Operand(edx, 4), 3); | |
| 694 | 696 | __ vhaddps(xmm0, xmm1, xmm2); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments