| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_ASSEMBLER_X64_H_ | 5 #ifndef VM_ASSEMBLER_X64_H_ |
| 6 #define VM_ASSEMBLER_X64_H_ | 6 #define VM_ASSEMBLER_X64_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_x64.h directly; use assembler.h instead. | 9 #error Do not include assembler_x64.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 void mulsd(XmmRegister dst, XmmRegister src); | 367 void mulsd(XmmRegister dst, XmmRegister src); |
| 368 void divsd(XmmRegister dst, XmmRegister src); | 368 void divsd(XmmRegister dst, XmmRegister src); |
| 369 | 369 |
| 370 void comisd(XmmRegister a, XmmRegister b); | 370 void comisd(XmmRegister a, XmmRegister b); |
| 371 void cvtsi2sd(XmmRegister a, Register b); | 371 void cvtsi2sd(XmmRegister a, Register b); |
| 372 void cvttsd2siq(Register dst, XmmRegister src); | 372 void cvttsd2siq(Register dst, XmmRegister src); |
| 373 | 373 |
| 374 void cvtss2sd(XmmRegister dst, XmmRegister src); | 374 void cvtss2sd(XmmRegister dst, XmmRegister src); |
| 375 void cvtsd2ss(XmmRegister dst, XmmRegister src); | 375 void cvtsd2ss(XmmRegister dst, XmmRegister src); |
| 376 | 376 |
| 377 void pxor(XmmRegister dst, XmmRegister src); |
| 378 |
| 379 enum RoundingMode { |
| 380 kRoundToNearest = 0x0, |
| 381 kRoundDown = 0x1, |
| 382 kRoundUp = 0x2, |
| 383 kRoundToZero = 0x3 |
| 384 }; |
| 385 void roundsd(XmmRegister dst, XmmRegister src, RoundingMode mode); |
| 386 |
| 377 void xchgl(Register dst, Register src); | 387 void xchgl(Register dst, Register src); |
| 378 void xchgq(Register dst, Register src); | 388 void xchgq(Register dst, Register src); |
| 379 | 389 |
| 380 void cmpl(Register reg, const Immediate& imm); | 390 void cmpl(Register reg, const Immediate& imm); |
| 381 void cmpl(Register reg0, Register reg1); | 391 void cmpl(Register reg0, Register reg1); |
| 382 void cmpl(Register reg, const Address& address); | 392 void cmpl(Register reg, const Address& address); |
| 383 void cmpl(const Address& address, const Immediate& imm); | 393 void cmpl(const Address& address, const Immediate& imm); |
| 384 | 394 |
| 385 void cmpq(Register reg, const Immediate& imm); | 395 void cmpq(Register reg, const Immediate& imm); |
| 386 void cmpq(const Address& address, Register reg); | 396 void cmpq(const Address& address, Register reg); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 void leave(); | 485 void leave(); |
| 476 void ret(); | 486 void ret(); |
| 477 | 487 |
| 478 void movmskpd(Register dst, XmmRegister src); | 488 void movmskpd(Register dst, XmmRegister src); |
| 479 | 489 |
| 480 void sqrtsd(XmmRegister dst, XmmRegister src); | 490 void sqrtsd(XmmRegister dst, XmmRegister src); |
| 481 | 491 |
| 482 void xorpd(XmmRegister dst, const Address& src); | 492 void xorpd(XmmRegister dst, const Address& src); |
| 483 void xorpd(XmmRegister dst, XmmRegister src); | 493 void xorpd(XmmRegister dst, XmmRegister src); |
| 484 | 494 |
| 495 void andpd(XmmRegister dst, const Address& src); |
| 496 |
| 485 void fldl(const Address& src); | 497 void fldl(const Address& src); |
| 486 void fstpl(const Address& dst); | 498 void fstpl(const Address& dst); |
| 487 | 499 |
| 488 void fildl(const Address& src); | 500 void fildl(const Address& src); |
| 489 | 501 |
| 490 void fincstp(); | 502 void fincstp(); |
| 491 void ffree(intptr_t value); | 503 void ffree(intptr_t value); |
| 492 | 504 |
| 493 void fsin(); | 505 void fsin(); |
| 494 void fcos(); | 506 void fcos(); |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 const FieldAddress& dest, | 581 const FieldAddress& dest, |
| 570 Register value); | 582 Register value); |
| 571 void StoreIntoObjectNoBarrier(Register object, | 583 void StoreIntoObjectNoBarrier(Register object, |
| 572 const FieldAddress& dest, | 584 const FieldAddress& dest, |
| 573 const Object& value); | 585 const Object& value); |
| 574 | 586 |
| 575 void DoubleNegate(XmmRegister d); | 587 void DoubleNegate(XmmRegister d); |
| 576 void FloatNegate(XmmRegister f); | 588 void FloatNegate(XmmRegister f); |
| 577 | 589 |
| 578 void DoubleAbs(XmmRegister reg); | 590 void DoubleAbs(XmmRegister reg); |
| 591 void DoubleRound(XmmRegister dst, XmmRegister src, XmmRegister tmp); |
| 579 | 592 |
| 580 void LockCmpxchgl(const Address& address, Register reg) { | 593 void LockCmpxchgl(const Address& address, Register reg) { |
| 581 lock(); | 594 lock(); |
| 582 cmpxchgl(address, reg); | 595 cmpxchgl(address, reg); |
| 583 } | 596 } |
| 584 | 597 |
| 585 void EnterFrame(intptr_t frame_space); | 598 void EnterFrame(intptr_t frame_space); |
| 586 void LeaveFrame(); | 599 void LeaveFrame(); |
| 587 void ReserveAlignedFrameSpace(intptr_t frame_space); | 600 void ReserveAlignedFrameSpace(intptr_t frame_space); |
| 588 | 601 |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 777 } | 790 } |
| 778 | 791 |
| 779 | 792 |
| 780 inline void Assembler::EmitOperandSizeOverride() { | 793 inline void Assembler::EmitOperandSizeOverride() { |
| 781 EmitUint8(0x66); | 794 EmitUint8(0x66); |
| 782 } | 795 } |
| 783 | 796 |
| 784 } // namespace dart | 797 } // namespace dart |
| 785 | 798 |
| 786 #endif // VM_ASSEMBLER_X64_H_ | 799 #endif // VM_ASSEMBLER_X64_H_ |
| OLD | NEW |