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

Side by Side Diff: src/x64/assembler-x64.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/version.cc ('k') | src/x64/builtins-x64.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 628 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 // Stack 639 // Stack
640 void pushfq(); 640 void pushfq();
641 void popfq(); 641 void popfq();
642 642
643 void push(Immediate value); 643 void push(Immediate value);
644 // Push a 32 bit integer, and guarantee that it is actually pushed as a 644 // Push a 32 bit integer, and guarantee that it is actually pushed as a
645 // 32 bit value, the normal push will optimize the 8 bit case. 645 // 32 bit value, the normal push will optimize the 8 bit case.
646 void push_imm32(int32_t imm32); 646 void push_imm32(int32_t imm32);
647 void push(Register src); 647 void push(Register src);
648 void push(const Operand& src); 648 void push(const Operand& src);
649 void push(Handle<Object> handle);
649 650
650 void pop(Register dst); 651 void pop(Register dst);
651 void pop(const Operand& dst); 652 void pop(const Operand& dst);
652 653
653 void enter(Immediate size); 654 void enter(Immediate size);
654 void leave(); 655 void leave();
655 656
656 // Moves 657 // Moves
657 void movb(Register dst, const Operand& src); 658 void movb(Register dst, const Operand& src);
658 void movb(Register dst, Immediate imm); 659 void movb(Register dst, Immediate imm);
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
1166 // 1167 //
1167 // Note: The same Label can be used for forward and backward branches 1168 // Note: The same Label can be used for forward and backward branches
1168 // but it may be bound only once. 1169 // but it may be bound only once.
1169 1170
1170 void bind(Label* L); // binds an unbound label L to the current code position 1171 void bind(Label* L); // binds an unbound label L to the current code position
1171 1172
1172 // Calls 1173 // Calls
1173 // Call near relative 32-bit displacement, relative to next instruction. 1174 // Call near relative 32-bit displacement, relative to next instruction.
1174 void call(Label* L); 1175 void call(Label* L);
1175 void call(Handle<Code> target, 1176 void call(Handle<Code> target,
1176 RelocInfo::Mode rmode, 1177 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
1177 unsigned ast_id = kNoASTId); 1178 unsigned ast_id = kNoASTId);
1178 1179
1179 // Calls directly to the given address using a relative offset. 1180 // Calls directly to the given address using a relative offset.
1180 // Should only ever be used in Code objects for calls within the 1181 // Should only ever be used in Code objects for calls within the
1181 // same Code object. Should not be used when generating new code (use labels), 1182 // same Code object. Should not be used when generating new code (use labels),
1182 // but only when patching existing code. 1183 // but only when patching existing code.
1183 void call(Address target); 1184 void call(Address target);
1184 1185
1185 // Call near absolute indirect, address in register 1186 // Call near absolute indirect, address in register
1186 void call(Register adr); 1187 void call(Register adr);
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 // The first argument is the reg field, the second argument is the r/m field. 1349 // The first argument is the reg field, the second argument is the r/m field.
1349 void emit_sse_operand(XMMRegister dst, XMMRegister src); 1350 void emit_sse_operand(XMMRegister dst, XMMRegister src);
1350 void emit_sse_operand(XMMRegister reg, const Operand& adr); 1351 void emit_sse_operand(XMMRegister reg, const Operand& adr);
1351 void emit_sse_operand(XMMRegister dst, Register src); 1352 void emit_sse_operand(XMMRegister dst, Register src);
1352 void emit_sse_operand(Register dst, XMMRegister src); 1353 void emit_sse_operand(Register dst, XMMRegister src);
1353 1354
1354 // Debugging 1355 // Debugging
1355 void Print(); 1356 void Print();
1356 1357
1357 // Check the code size generated from label to here. 1358 // Check the code size generated from label to here.
1358 int SizeOfCodeGeneratedSince(Label* l) { return pc_offset() - l->pos(); } 1359 int SizeOfCodeGeneratedSince(Label* label) {
1360 return pc_offset() - label->pos();
1361 }
1359 1362
1360 // Mark address of the ExitJSFrame code. 1363 // Mark address of the ExitJSFrame code.
1361 void RecordJSReturn(); 1364 void RecordJSReturn();
1362 1365
1363 // Mark address of a debug break slot. 1366 // Mark address of a debug break slot.
1364 void RecordDebugBreakSlot(); 1367 void RecordDebugBreakSlot();
1365 1368
1366 // Record a comment relocation entry that can be used by a disassembler. 1369 // Record a comment relocation entry that can be used by a disassembler.
1367 // Use --code-comments to enable. 1370 // Use --code-comments to enable.
1368 void RecordComment(const char* msg, bool force = false); 1371 void RecordComment(const char* msg, bool force = false);
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
1631 private: 1634 private:
1632 Assembler* assembler_; 1635 Assembler* assembler_;
1633 #ifdef DEBUG 1636 #ifdef DEBUG
1634 int space_before_; 1637 int space_before_;
1635 #endif 1638 #endif
1636 }; 1639 };
1637 1640
1638 } } // namespace v8::internal 1641 } } // namespace v8::internal
1639 1642
1640 #endif // V8_X64_ASSEMBLER_X64_H_ 1643 #endif // V8_X64_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « src/version.cc ('k') | src/x64/builtins-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698