| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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_ |
| OLD | NEW |