Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Side by Side Diff: src/ia32/assembler-ia32.h

Issue 844006: Merge changes up to V8 version 2.1.3 into the partial snapshots (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/partial_snapshots/
Patch Set: Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/heap-profiler.cc ('k') | src/ia32/assembler-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 const Register edx = { 2 }; 86 const Register edx = { 2 };
87 const Register ebx = { 3 }; 87 const Register ebx = { 3 };
88 const Register esp = { 4 }; 88 const Register esp = { 4 };
89 const Register ebp = { 5 }; 89 const Register ebp = { 5 };
90 const Register esi = { 6 }; 90 const Register esi = { 6 };
91 const Register edi = { 7 }; 91 const Register edi = { 7 };
92 const Register no_reg = { -1 }; 92 const Register no_reg = { -1 };
93 93
94 94
95 struct XMMRegister { 95 struct XMMRegister {
96 bool is_valid() const { return 0 <= code_ && code_ < 2; } // currently 96 bool is_valid() const { return 0 <= code_ && code_ < 8; }
97 int code() const { 97 int code() const {
98 ASSERT(is_valid()); 98 ASSERT(is_valid());
99 return code_; 99 return code_;
100 } 100 }
101 101
102 int code_; 102 int code_;
103 }; 103 };
104 104
105 const XMMRegister xmm0 = { 0 }; 105 const XMMRegister xmm0 = { 0 };
106 const XMMRegister xmm1 = { 1 }; 106 const XMMRegister xmm1 = { 1 };
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 535
536 void movzx_b(Register dst, const Operand& src); 536 void movzx_b(Register dst, const Operand& src);
537 537
538 void movzx_w(Register dst, const Operand& src); 538 void movzx_w(Register dst, const Operand& src);
539 539
540 // Conditional moves 540 // Conditional moves
541 void cmov(Condition cc, Register dst, int32_t imm32); 541 void cmov(Condition cc, Register dst, int32_t imm32);
542 void cmov(Condition cc, Register dst, Handle<Object> handle); 542 void cmov(Condition cc, Register dst, Handle<Object> handle);
543 void cmov(Condition cc, Register dst, const Operand& src); 543 void cmov(Condition cc, Register dst, const Operand& src);
544 544
545 // Flag management.
546 void cld();
547
545 // Repetitive string instructions. 548 // Repetitive string instructions.
546 void rep_movs(); 549 void rep_movs();
550 void rep_stos();
547 551
548 // Exchange two registers 552 // Exchange two registers
549 void xchg(Register dst, Register src); 553 void xchg(Register dst, Register src);
550 554
551 // Arithmetics 555 // Arithmetics
552 void adc(Register dst, int32_t imm32); 556 void adc(Register dst, int32_t imm32);
553 void adc(Register dst, const Operand& src); 557 void adc(Register dst, const Operand& src);
554 558
555 void add(Register dst, const Operand& src); 559 void add(Register dst, const Operand& src);
556 void add(const Operand& dst, const Immediate& x); 560 void add(const Operand& dst, const Immediate& x);
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
747 void sahf(); 751 void sahf();
748 void setcc(Condition cc, Register reg); 752 void setcc(Condition cc, Register reg);
749 753
750 void cpuid(); 754 void cpuid();
751 755
752 // SSE2 instructions 756 // SSE2 instructions
753 void cvttss2si(Register dst, const Operand& src); 757 void cvttss2si(Register dst, const Operand& src);
754 void cvttsd2si(Register dst, const Operand& src); 758 void cvttsd2si(Register dst, const Operand& src);
755 759
756 void cvtsi2sd(XMMRegister dst, const Operand& src); 760 void cvtsi2sd(XMMRegister dst, const Operand& src);
761 void cvtss2sd(XMMRegister dst, XMMRegister src);
757 762
758 void addsd(XMMRegister dst, XMMRegister src); 763 void addsd(XMMRegister dst, XMMRegister src);
759 void subsd(XMMRegister dst, XMMRegister src); 764 void subsd(XMMRegister dst, XMMRegister src);
760 void mulsd(XMMRegister dst, XMMRegister src); 765 void mulsd(XMMRegister dst, XMMRegister src);
761 void divsd(XMMRegister dst, XMMRegister src); 766 void divsd(XMMRegister dst, XMMRegister src);
762 void xorpd(XMMRegister dst, XMMRegister src); 767 void xorpd(XMMRegister dst, XMMRegister src);
768 void sqrtsd(XMMRegister dst, XMMRegister src);
763 769
764 void comisd(XMMRegister dst, XMMRegister src); 770 void comisd(XMMRegister dst, XMMRegister src);
771 void ucomisd(XMMRegister dst, XMMRegister src);
765 772
766 void movdqa(XMMRegister dst, const Operand& src); 773 void movdqa(XMMRegister dst, const Operand& src);
767 void movdqa(const Operand& dst, XMMRegister src); 774 void movdqa(const Operand& dst, XMMRegister src);
768 void movdqu(XMMRegister dst, const Operand& src); 775 void movdqu(XMMRegister dst, const Operand& src);
769 void movdqu(const Operand& dst, XMMRegister src); 776 void movdqu(const Operand& dst, XMMRegister src);
770 777
771 // Use either movsd or movlpd. 778 // Use either movsd or movlpd.
772 void movdbl(XMMRegister dst, const Operand& src); 779 void movdbl(XMMRegister dst, const Operand& src);
773 void movdbl(const Operand& dst, XMMRegister src); 780 void movdbl(const Operand& dst, XMMRegister src);
774 781
782 void movd(XMMRegister dst, const Operand& src);
783 void movsd(XMMRegister dst, XMMRegister src);
784
785 void pxor(XMMRegister dst, XMMRegister src);
786 void ptest(XMMRegister dst, XMMRegister src);
787
775 // Debugging 788 // Debugging
776 void Print(); 789 void Print();
777 790
778 // Check the code size generated from label to here. 791 // Check the code size generated from label to here.
779 int SizeOfCodeGeneratedSince(Label* l) { return pc_offset() - l->pos(); } 792 int SizeOfCodeGeneratedSince(Label* l) { return pc_offset() - l->pos(); }
780 793
781 // Mark address of the ExitJSFrame code. 794 // Mark address of the ExitJSFrame code.
782 void RecordJSReturn(); 795 void RecordJSReturn();
783 796
784 // Record a comment relocation entry that can be used by a disassembler. 797 // Record a comment relocation entry that can be used by a disassembler.
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 private: 927 private:
915 Assembler* assembler_; 928 Assembler* assembler_;
916 #ifdef DEBUG 929 #ifdef DEBUG
917 int space_before_; 930 int space_before_;
918 #endif 931 #endif
919 }; 932 };
920 933
921 } } // namespace v8::internal 934 } } // namespace v8::internal
922 935
923 #endif // V8_IA32_ASSEMBLER_IA32_H_ 936 #endif // V8_IA32_ASSEMBLER_IA32_H_
OLDNEW
« no previous file with comments | « src/heap-profiler.cc ('k') | src/ia32/assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698