OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // Modified by the Subzero authors. | 5 // Modified by the Subzero authors. |
6 // | 6 // |
7 //===- subzero/src/assembler_ia32.h - Assembler for x86-32 ----------------===// | 7 //===- subzero/src/assembler_ia32.h - Assembler for x86-32 ----------------===// |
8 // | 8 // |
9 // The Subzero Code Generator | 9 // The Subzero Code Generator |
10 // | 10 // |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 void movsxw(GPRRegister dst, const Address &src); | 439 void movsxw(GPRRegister dst, const Address &src); |
440 void movw(GPRRegister dst, const Address &src); | 440 void movw(GPRRegister dst, const Address &src); |
441 void movw(const Address &dst, GPRRegister src); | 441 void movw(const Address &dst, GPRRegister src); |
442 | 442 |
443 void lea(Type Ty, GPRRegister dst, const Address &src); | 443 void lea(Type Ty, GPRRegister dst, const Address &src); |
444 | 444 |
445 void cmov(CondX86::BrCond cond, GPRRegister dst, GPRRegister src); | 445 void cmov(CondX86::BrCond cond, GPRRegister dst, GPRRegister src); |
446 | 446 |
447 void rep_movsb(); | 447 void rep_movsb(); |
448 | 448 |
449 void movss(XmmRegister dst, const Address &src); | 449 void movss(Type Ty, XmmRegister dst, const Address &src); |
450 void movss(const Address &dst, XmmRegister src); | 450 void movss(Type Ty, const Address &dst, XmmRegister src); |
451 void movss(XmmRegister dst, XmmRegister src); | 451 void movss(Type Ty, XmmRegister dst, XmmRegister src); |
452 | 452 |
453 void movd(XmmRegister dst, GPRRegister src); | 453 void movd(XmmRegister dst, GPRRegister src); |
454 void movd(XmmRegister dst, const Address &src); | 454 void movd(XmmRegister dst, const Address &src); |
455 void movd(GPRRegister dst, XmmRegister src); | 455 void movd(GPRRegister dst, XmmRegister src); |
456 void movd(const Address &dst, XmmRegister src); | 456 void movd(const Address &dst, XmmRegister src); |
457 | 457 |
458 void movq(XmmRegister dst, XmmRegister src); | 458 void movq(XmmRegister dst, XmmRegister src); |
459 void movq(const Address &dst, XmmRegister src); | 459 void movq(const Address &dst, XmmRegister src); |
460 void movq(XmmRegister dst, const Address &src); | 460 void movq(XmmRegister dst, const Address &src); |
461 | 461 |
462 void addss(Type Ty, XmmRegister dst, XmmRegister src); | 462 void addss(Type Ty, XmmRegister dst, XmmRegister src); |
463 void addss(Type Ty, XmmRegister dst, const Address &src); | 463 void addss(Type Ty, XmmRegister dst, const Address &src); |
464 void subss(Type Ty, XmmRegister dst, XmmRegister src); | 464 void subss(Type Ty, XmmRegister dst, XmmRegister src); |
465 void subss(Type Ty, XmmRegister dst, const Address &src); | 465 void subss(Type Ty, XmmRegister dst, const Address &src); |
466 void mulss(Type Ty, XmmRegister dst, XmmRegister src); | 466 void mulss(Type Ty, XmmRegister dst, XmmRegister src); |
467 void mulss(Type Ty, XmmRegister dst, const Address &src); | 467 void mulss(Type Ty, XmmRegister dst, const Address &src); |
468 void divss(Type Ty, XmmRegister dst, XmmRegister src); | 468 void divss(Type Ty, XmmRegister dst, XmmRegister src); |
469 void divss(Type Ty, XmmRegister dst, const Address &src); | 469 void divss(Type Ty, XmmRegister dst, const Address &src); |
470 | 470 |
471 void movsd(XmmRegister dst, const Address &src); | |
472 void movsd(const Address &dst, XmmRegister src); | |
473 void movsd(XmmRegister dst, XmmRegister src); | |
474 | |
475 void movaps(XmmRegister dst, XmmRegister src); | 471 void movaps(XmmRegister dst, XmmRegister src); |
476 | 472 |
477 void movups(XmmRegister dst, XmmRegister src); | 473 void movups(XmmRegister dst, XmmRegister src); |
478 void movups(XmmRegister dst, const Address &src); | 474 void movups(XmmRegister dst, const Address &src); |
479 void movups(const Address &dst, XmmRegister src); | 475 void movups(const Address &dst, XmmRegister src); |
480 | 476 |
481 void padd(Type Ty, XmmRegister dst, XmmRegister src); | 477 void padd(Type Ty, XmmRegister dst, XmmRegister src); |
482 void padd(Type Ty, XmmRegister dst, const Address &src); | 478 void padd(Type Ty, XmmRegister dst, const Address &src); |
483 void pand(Type Ty, XmmRegister dst, XmmRegister src); | 479 void pand(Type Ty, XmmRegister dst, XmmRegister src); |
484 void pand(Type Ty, XmmRegister dst, const Address &src); | 480 void pand(Type Ty, XmmRegister dst, const Address &src); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
583 void pcmpgt(Type Ty, XmmRegister dst, const Address &src); | 579 void pcmpgt(Type Ty, XmmRegister dst, const Address &src); |
584 | 580 |
585 enum RoundingMode { | 581 enum RoundingMode { |
586 kRoundToNearest = 0x0, | 582 kRoundToNearest = 0x0, |
587 kRoundDown = 0x1, | 583 kRoundDown = 0x1, |
588 kRoundUp = 0x2, | 584 kRoundUp = 0x2, |
589 kRoundToZero = 0x3 | 585 kRoundToZero = 0x3 |
590 }; | 586 }; |
591 void roundsd(XmmRegister dst, XmmRegister src, RoundingMode mode); | 587 void roundsd(XmmRegister dst, XmmRegister src, RoundingMode mode); |
592 | 588 |
593 void flds(const Address &src); | 589 void fld(Type Ty, const Address &src); |
594 void fstps(const Address &dst); | 590 void fstp(Type Ty, const Address &dst); |
595 | |
596 void fldl(const Address &src); | |
597 void fstpl(const Address &dst); | |
598 | 591 |
599 void fnstcw(const Address &dst); | 592 void fnstcw(const Address &dst); |
600 void fldcw(const Address &src); | 593 void fldcw(const Address &src); |
601 | 594 |
602 void fistpl(const Address &dst); | 595 void fistpl(const Address &dst); |
603 void fistps(const Address &dst); | 596 void fistps(const Address &dst); |
604 void fildl(const Address &src); | 597 void fildl(const Address &src); |
605 void filds(const Address &src); | 598 void filds(const Address &src); |
606 | 599 |
607 void fincstp(); | 600 void fincstp(); |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 inline void AssemblerX86::EmitFixup(AssemblerFixup *fixup) { | 799 inline void AssemblerX86::EmitFixup(AssemblerFixup *fixup) { |
807 buffer_.EmitFixup(fixup); | 800 buffer_.EmitFixup(fixup); |
808 } | 801 } |
809 | 802 |
810 inline void AssemblerX86::EmitOperandSizeOverride() { EmitUint8(0x66); } | 803 inline void AssemblerX86::EmitOperandSizeOverride() { EmitUint8(0x66); } |
811 | 804 |
812 } // end of namespace x86 | 805 } // end of namespace x86 |
813 } // end of namespace Ice | 806 } // end of namespace Ice |
814 | 807 |
815 #endif // SUBZERO_SRC_ASSEMBLER_IA32_H_ | 808 #endif // SUBZERO_SRC_ASSEMBLER_IA32_H_ |
OLD | NEW |