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

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

Issue 7348008: Merge up to 8597 to experimental/gc from the bleeding edge. (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/gc/
Patch Set: '' Created 9 years, 5 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/hydrogen-instructions.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 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 void pushad(); 661 void pushad();
662 void popad(); 662 void popad();
663 663
664 void pushfd(); 664 void pushfd();
665 void popfd(); 665 void popfd();
666 666
667 void push(const Immediate& x); 667 void push(const Immediate& x);
668 void push_imm32(int32_t imm32); 668 void push_imm32(int32_t imm32);
669 void push(Register src); 669 void push(Register src);
670 void push(const Operand& src); 670 void push(const Operand& src);
671 void push(Handle<Object> handle);
671 672
672 void pop(Register dst); 673 void pop(Register dst);
673 void pop(const Operand& dst); 674 void pop(const Operand& dst);
674 675
675 void enter(const Immediate& size); 676 void enter(const Immediate& size);
676 void leave(); 677 void leave();
677 678
678 // Moves 679 // Moves
679 void mov_b(Register dst, const Operand& src); 680 void mov_b(Register dst, const Operand& src);
680 void mov_b(const Operand& dst, int8_t imm8); 681 void mov_b(const Operand& dst, int8_t imm8);
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 836
836 void bind(Label* L); // binds an unbound label L to the current code position 837 void bind(Label* L); // binds an unbound label L to the current code position
837 838
838 // Calls 839 // Calls
839 void call(Label* L); 840 void call(Label* L);
840 void call(byte* entry, RelocInfo::Mode rmode); 841 void call(byte* entry, RelocInfo::Mode rmode);
841 int CallSize(const Operand& adr); 842 int CallSize(const Operand& adr);
842 void call(const Operand& adr); 843 void call(const Operand& adr);
843 int CallSize(Handle<Code> code, RelocInfo::Mode mode); 844 int CallSize(Handle<Code> code, RelocInfo::Mode mode);
844 void call(Handle<Code> code, 845 void call(Handle<Code> code,
845 RelocInfo::Mode rmode, 846 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
846 unsigned ast_id = kNoASTId); 847 unsigned ast_id = kNoASTId);
847 848
848 // Jumps 849 // Jumps
849 // unconditional jump to L 850 // unconditional jump to L
850 void jmp(Label* L, Label::Distance distance = Label::kFar); 851 void jmp(Label* L, Label::Distance distance = Label::kFar);
851 void jmp(byte* entry, RelocInfo::Mode rmode); 852 void jmp(byte* entry, RelocInfo::Mode rmode);
852 void jmp(const Operand& adr); 853 void jmp(const Operand& adr);
853 void jmp(Handle<Code> code, RelocInfo::Mode rmode); 854 void jmp(Handle<Code> code, RelocInfo::Mode rmode);
854 855
855 // Conditional jumps 856 // Conditional jumps
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
990 // Prefetch src position into cache level. 991 // Prefetch src position into cache level.
991 // Level 1, 2 or 3 specifies CPU cache level. Level 0 specifies a 992 // Level 1, 2 or 3 specifies CPU cache level. Level 0 specifies a
992 // non-temporal 993 // non-temporal
993 void prefetch(const Operand& src, int level); 994 void prefetch(const Operand& src, int level);
994 // TODO(lrn): Need SFENCE for movnt? 995 // TODO(lrn): Need SFENCE for movnt?
995 996
996 // Debugging 997 // Debugging
997 void Print(); 998 void Print();
998 999
999 // Check the code size generated from label to here. 1000 // Check the code size generated from label to here.
1000 int SizeOfCodeGeneratedSince(Label* l) { return pc_offset() - l->pos(); } 1001 int SizeOfCodeGeneratedSince(Label* label) {
1002 return pc_offset() - label->pos();
1003 }
1001 1004
1002 // Mark address of the ExitJSFrame code. 1005 // Mark address of the ExitJSFrame code.
1003 void RecordJSReturn(); 1006 void RecordJSReturn();
1004 1007
1005 // Mark address of a debug break slot. 1008 // Mark address of a debug break slot.
1006 void RecordDebugBreakSlot(); 1009 void RecordDebugBreakSlot();
1007 1010
1008 // Record a comment relocation entry that can be used by a disassembler. 1011 // Record a comment relocation entry that can be used by a disassembler.
1009 // Use --code-comments to enable, or provide "force = true" flag to always 1012 // Use --code-comments to enable, or provide "force = true" flag to always
1010 // write a comment. 1013 // write a comment.
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1145 private: 1148 private:
1146 Assembler* assembler_; 1149 Assembler* assembler_;
1147 #ifdef DEBUG 1150 #ifdef DEBUG
1148 int space_before_; 1151 int space_before_;
1149 #endif 1152 #endif
1150 }; 1153 };
1151 1154
1152 } } // namespace v8::internal 1155 } } // namespace v8::internal
1153 1156
1154 #endif // V8_IA32_ASSEMBLER_IA32_H_ 1157 #endif // V8_IA32_ASSEMBLER_IA32_H_
OLDNEW
« no previous file with comments | « src/hydrogen-instructions.cc ('k') | src/ia32/assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698