OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_X64_MACRO_ASSEMBLER_X64_H_ | 5 #ifndef V8_X64_MACRO_ASSEMBLER_X64_H_ |
6 #define V8_X64_MACRO_ASSEMBLER_X64_H_ | 6 #define V8_X64_MACRO_ASSEMBLER_X64_H_ |
7 | 7 |
8 #include "src/bailout-reason.h" | 8 #include "src/bailout-reason.h" |
9 #include "src/base/flags.h" | 9 #include "src/base/flags.h" |
10 #include "src/frames.h" | 10 #include "src/frames.h" |
(...skipping 977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
988 | 988 |
989 // Control Flow | 989 // Control Flow |
990 void Jump(Address destination, RelocInfo::Mode rmode); | 990 void Jump(Address destination, RelocInfo::Mode rmode); |
991 void Jump(ExternalReference ext); | 991 void Jump(ExternalReference ext); |
992 void Jump(const Operand& op); | 992 void Jump(const Operand& op); |
993 void Jump(Handle<Code> code_object, RelocInfo::Mode rmode); | 993 void Jump(Handle<Code> code_object, RelocInfo::Mode rmode); |
994 | 994 |
995 void Call(Address destination, RelocInfo::Mode rmode); | 995 void Call(Address destination, RelocInfo::Mode rmode); |
996 void Call(ExternalReference ext); | 996 void Call(ExternalReference ext); |
997 void Call(const Operand& op); | 997 void Call(const Operand& op); |
998 void Call(Handle<Code> code_object, | 998 void Call(Handle<Code> code_object, RelocInfo::Mode rmode); |
999 RelocInfo::Mode rmode, | |
1000 TypeFeedbackId ast_id = TypeFeedbackId::None()); | |
1001 | 999 |
1002 // The size of the code generated for different call instructions. | 1000 // The size of the code generated for different call instructions. |
1003 int CallSize(Address destination) { | 1001 int CallSize(Address destination) { |
1004 return kCallSequenceLength; | 1002 return kCallSequenceLength; |
1005 } | 1003 } |
1006 int CallSize(ExternalReference ext); | 1004 int CallSize(ExternalReference ext); |
1007 int CallSize(Handle<Code> code_object) { | 1005 int CallSize(Handle<Code> code_object) { |
1008 // Code calls use 32-bit relative addressing. | 1006 // Code calls use 32-bit relative addressing. |
1009 return kShortCallInstructionLength; | 1007 return kShortCallInstructionLength; |
1010 } | 1008 } |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1263 void LoadNativeContextSlot(int index, Register dst); | 1261 void LoadNativeContextSlot(int index, Register dst); |
1264 | 1262 |
1265 // Load the initial map from the global function. The registers | 1263 // Load the initial map from the global function. The registers |
1266 // function and map can be the same. | 1264 // function and map can be the same. |
1267 void LoadGlobalFunctionInitialMap(Register function, Register map); | 1265 void LoadGlobalFunctionInitialMap(Register function, Register map); |
1268 | 1266 |
1269 // --------------------------------------------------------------------------- | 1267 // --------------------------------------------------------------------------- |
1270 // Runtime calls | 1268 // Runtime calls |
1271 | 1269 |
1272 // Call a code stub. | 1270 // Call a code stub. |
1273 void CallStub(CodeStub* stub, TypeFeedbackId ast_id = TypeFeedbackId::None()); | 1271 void CallStub(CodeStub* stub); |
1274 | 1272 |
1275 // Tail call a code stub (jump). | 1273 // Tail call a code stub (jump). |
1276 void TailCallStub(CodeStub* stub); | 1274 void TailCallStub(CodeStub* stub); |
1277 | 1275 |
1278 // Call a runtime routine. | 1276 // Call a runtime routine. |
1279 void CallRuntime(const Runtime::Function* f, | 1277 void CallRuntime(const Runtime::Function* f, |
1280 int num_arguments, | 1278 int num_arguments, |
1281 SaveFPRegsMode save_doubles = kDontSaveFPRegs); | 1279 SaveFPRegsMode save_doubles = kDontSaveFPRegs); |
1282 | 1280 |
1283 // Call a runtime function and save the value of XMM registers. | 1281 // Call a runtime function and save the value of XMM registers. |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1571 inline Operand StackOperandForReturnAddress(int32_t disp) { | 1569 inline Operand StackOperandForReturnAddress(int32_t disp) { |
1572 return Operand(rsp, disp); | 1570 return Operand(rsp, disp); |
1573 } | 1571 } |
1574 | 1572 |
1575 #define ACCESS_MASM(masm) masm-> | 1573 #define ACCESS_MASM(masm) masm-> |
1576 | 1574 |
1577 } // namespace internal | 1575 } // namespace internal |
1578 } // namespace v8 | 1576 } // namespace v8 |
1579 | 1577 |
1580 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ | 1578 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ |
OLD | NEW |