OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/x64/assembler-x64.h" | 5 #include "src/x64/assembler-x64.h" |
6 | 6 |
7 #include <cstring> | 7 #include <cstring> |
8 | 8 |
9 #if V8_TARGET_ARCH_X64 | 9 #if V8_TARGET_ARCH_X64 |
10 | 10 |
(...skipping 2968 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2979 EnsureSpace ensure_space(this); | 2979 EnsureSpace ensure_space(this); |
2980 emit(0xF3); // single | 2980 emit(0xF3); // single |
2981 emit_optional_rex_32(dst, src); | 2981 emit_optional_rex_32(dst, src); |
2982 emit(0x0F); | 2982 emit(0x0F); |
2983 emit(0x11); // store | 2983 emit(0x11); // store |
2984 emit_sse_operand(dst, src); | 2984 emit_sse_operand(dst, src); |
2985 } | 2985 } |
2986 | 2986 |
2987 | 2987 |
2988 void Assembler::psllq(XMMRegister reg, byte imm8) { | 2988 void Assembler::psllq(XMMRegister reg, byte imm8) { |
| 2989 DCHECK(!IsEnabled(AVX)); |
2989 EnsureSpace ensure_space(this); | 2990 EnsureSpace ensure_space(this); |
2990 emit(0x66); | 2991 emit(0x66); |
2991 emit_optional_rex_32(reg); | 2992 emit_optional_rex_32(reg); |
2992 emit(0x0F); | 2993 emit(0x0F); |
2993 emit(0x73); | 2994 emit(0x73); |
2994 emit_sse_operand(rsi, reg); // rsi == 6 | 2995 emit_sse_operand(rsi, reg); // rsi == 6 |
2995 emit(imm8); | 2996 emit(imm8); |
2996 } | 2997 } |
2997 | 2998 |
2998 | 2999 |
2999 void Assembler::psrlq(XMMRegister reg, byte imm8) { | 3000 void Assembler::psrlq(XMMRegister reg, byte imm8) { |
| 3001 DCHECK(!IsEnabled(AVX)); |
3000 EnsureSpace ensure_space(this); | 3002 EnsureSpace ensure_space(this); |
3001 emit(0x66); | 3003 emit(0x66); |
3002 emit_optional_rex_32(reg); | 3004 emit_optional_rex_32(reg); |
3003 emit(0x0F); | 3005 emit(0x0F); |
3004 emit(0x73); | 3006 emit(0x73); |
3005 emit_sse_operand(rdx, reg); // rdx == 2 | 3007 emit_sse_operand(rdx, reg); // rdx == 2 |
3006 emit(imm8); | 3008 emit(imm8); |
3007 } | 3009 } |
3008 | 3010 |
3009 | 3011 |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3442 void Assembler::movmskps(Register dst, XMMRegister src) { | 3444 void Assembler::movmskps(Register dst, XMMRegister src) { |
3443 EnsureSpace ensure_space(this); | 3445 EnsureSpace ensure_space(this); |
3444 emit_optional_rex_32(dst, src); | 3446 emit_optional_rex_32(dst, src); |
3445 emit(0x0f); | 3447 emit(0x0f); |
3446 emit(0x50); | 3448 emit(0x50); |
3447 emit_sse_operand(dst, src); | 3449 emit_sse_operand(dst, src); |
3448 } | 3450 } |
3449 | 3451 |
3450 | 3452 |
3451 void Assembler::pcmpeqd(XMMRegister dst, XMMRegister src) { | 3453 void Assembler::pcmpeqd(XMMRegister dst, XMMRegister src) { |
| 3454 DCHECK(!IsEnabled(AVX)); |
3452 EnsureSpace ensure_space(this); | 3455 EnsureSpace ensure_space(this); |
3453 emit(0x66); | 3456 emit(0x66); |
3454 emit_optional_rex_32(dst, src); | 3457 emit_optional_rex_32(dst, src); |
3455 emit(0x0F); | 3458 emit(0x0F); |
3456 emit(0x76); | 3459 emit(0x76); |
3457 emit_sse_operand(dst, src); | 3460 emit_sse_operand(dst, src); |
3458 } | 3461 } |
3459 | 3462 |
3460 | 3463 |
3461 void Assembler::punpckldq(XMMRegister dst, XMMRegister src) { | 3464 void Assembler::punpckldq(XMMRegister dst, XMMRegister src) { |
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4031 | 4034 |
4032 bool RelocInfo::IsInConstantPool() { | 4035 bool RelocInfo::IsInConstantPool() { |
4033 return false; | 4036 return false; |
4034 } | 4037 } |
4035 | 4038 |
4036 | 4039 |
4037 } // namespace internal | 4040 } // namespace internal |
4038 } // namespace v8 | 4041 } // namespace v8 |
4039 | 4042 |
4040 #endif // V8_TARGET_ARCH_X64 | 4043 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |