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 3772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3783 | 3783 |
3784 void Assembler::punpckldq(XMMRegister dst, XMMRegister src) { | 3784 void Assembler::punpckldq(XMMRegister dst, XMMRegister src) { |
3785 EnsureSpace ensure_space(this); | 3785 EnsureSpace ensure_space(this); |
3786 emit(0x66); | 3786 emit(0x66); |
3787 emit_optional_rex_32(dst, src); | 3787 emit_optional_rex_32(dst, src); |
3788 emit(0x0F); | 3788 emit(0x0F); |
3789 emit(0x62); | 3789 emit(0x62); |
3790 emit_sse_operand(dst, src); | 3790 emit_sse_operand(dst, src); |
3791 } | 3791 } |
3792 | 3792 |
| 3793 void Assembler::punpckldq(XMMRegister dst, const Operand& src) { |
| 3794 EnsureSpace ensure_space(this); |
| 3795 emit(0x66); |
| 3796 emit_optional_rex_32(dst, src); |
| 3797 emit(0x0F); |
| 3798 emit(0x62); |
| 3799 emit_sse_operand(dst, src); |
| 3800 } |
3793 | 3801 |
3794 void Assembler::punpckhdq(XMMRegister dst, XMMRegister src) { | 3802 void Assembler::punpckhdq(XMMRegister dst, XMMRegister src) { |
3795 EnsureSpace ensure_space(this); | 3803 EnsureSpace ensure_space(this); |
3796 emit(0x66); | 3804 emit(0x66); |
3797 emit_optional_rex_32(dst, src); | 3805 emit_optional_rex_32(dst, src); |
3798 emit(0x0F); | 3806 emit(0x0F); |
3799 emit(0x6A); | 3807 emit(0x6A); |
3800 emit_sse_operand(dst, src); | 3808 emit_sse_operand(dst, src); |
3801 } | 3809 } |
3802 | 3810 |
(...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4427 emit(0x38); | 4435 emit(0x38); |
4428 emit(0x40); | 4436 emit(0x40); |
4429 emit_sse_operand(dst, src); | 4437 emit_sse_operand(dst, src); |
4430 } | 4438 } |
4431 | 4439 |
4432 void Assembler::pmulld(XMMRegister dst, const Operand& src) { | 4440 void Assembler::pmulld(XMMRegister dst, const Operand& src) { |
4433 EnsureSpace ensure_space(this); | 4441 EnsureSpace ensure_space(this); |
4434 emit(0x66); | 4442 emit(0x66); |
4435 emit_optional_rex_32(dst, src); | 4443 emit_optional_rex_32(dst, src); |
4436 emit(0x0F); | 4444 emit(0x0F); |
4437 emit(0xF4); | 4445 emit(0x38); |
| 4446 emit(0x40); |
4438 emit_sse_operand(dst, src); | 4447 emit_sse_operand(dst, src); |
4439 } | 4448 } |
4440 | 4449 |
4441 void Assembler::pmuludq(XMMRegister dst, XMMRegister src) { | 4450 void Assembler::pmuludq(XMMRegister dst, XMMRegister src) { |
4442 EnsureSpace ensure_space(this); | 4451 EnsureSpace ensure_space(this); |
4443 emit(0x66); | 4452 emit(0x66); |
4444 emit_optional_rex_32(dst, src); | 4453 emit_optional_rex_32(dst, src); |
4445 emit(0x0F); | 4454 emit(0x0F); |
4446 emit(0xF4); | 4455 emit(0xF4); |
4447 emit_sse_operand(dst, src); | 4456 emit_sse_operand(dst, src); |
4448 } | 4457 } |
4449 | 4458 |
4450 void Assembler::pmuludq(XMMRegister dst, const Operand& src) { | 4459 void Assembler::pmuludq(XMMRegister dst, const Operand& src) { |
4451 EnsureSpace ensure_space(this); | 4460 EnsureSpace ensure_space(this); |
4452 emit(0x66); | 4461 emit(0x66); |
4453 emit_optional_rex_32(dst, src); | 4462 emit_optional_rex_32(dst, src); |
4454 emit(0x0F); | 4463 emit(0x0F); |
4455 emit(0xF4); | 4464 emit(0xF4); |
4456 emit_sse_operand(dst, src); | 4465 emit_sse_operand(dst, src); |
4457 } | 4466 } |
4458 | 4467 |
4459 void Assembler::punpackldq(XMMRegister dst, XMMRegister src) { | |
4460 EnsureSpace ensure_space(this); | |
4461 emit(0x66); | |
4462 emit_optional_rex_32(dst, src); | |
4463 emit(0x0F); | |
4464 emit(0x62); | |
4465 emit_sse_operand(dst, src); | |
4466 } | |
4467 | |
4468 void Assembler::punpackldq(XMMRegister dst, const Operand& src) { | |
4469 EnsureSpace ensure_space(this); | |
4470 emit(0x66); | |
4471 emit_optional_rex_32(dst, src); | |
4472 emit(0x0F); | |
4473 emit(0x62); | |
4474 emit_sse_operand(dst, src); | |
4475 } | |
4476 | |
4477 void Assembler::psrldq(XMMRegister dst, uint8_t shift) { | 4468 void Assembler::psrldq(XMMRegister dst, uint8_t shift) { |
4478 EnsureSpace ensure_space(this); | 4469 EnsureSpace ensure_space(this); |
4479 emit(0x66); | 4470 emit(0x66); |
4480 emit_optional_rex_32(dst); | 4471 emit_optional_rex_32(dst); |
4481 emit(0x0F); | 4472 emit(0x0F); |
4482 emit(0x73); | 4473 emit(0x73); |
4483 emit_sse_operand(dst); | 4474 emit_sse_operand(dst); |
4484 emit(shift); | 4475 emit(shift); |
4485 } | 4476 } |
4486 | 4477 |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4615 | 4606 |
4616 bool RelocInfo::IsInConstantPool() { | 4607 bool RelocInfo::IsInConstantPool() { |
4617 return false; | 4608 return false; |
4618 } | 4609 } |
4619 | 4610 |
4620 | 4611 |
4621 } // namespace internal | 4612 } // namespace internal |
4622 } // namespace v8 | 4613 } // namespace v8 |
4623 | 4614 |
4624 #endif // V8_TARGET_ARCH_X64 | 4615 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |