OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 // Leave the current exit frame. Expects the return value in | 110 // Leave the current exit frame. Expects the return value in |
111 // register eax:edx (untouched) and the pointer to the first | 111 // register eax:edx (untouched) and the pointer to the first |
112 // argument in register esi. | 112 // argument in register esi. |
113 void LeaveExitFrame(StackFrame::Type type); | 113 void LeaveExitFrame(StackFrame::Type type); |
114 | 114 |
115 | 115 |
116 // --------------------------------------------------------------------------- | 116 // --------------------------------------------------------------------------- |
117 // JavaScript invokes | 117 // JavaScript invokes |
118 | 118 |
119 // Invoke the JavaScript function code by either calling or jumping. | 119 // Invoke the JavaScript function code by either calling or jumping. |
120 void InvokeCode(const Operand& code, | 120 void InvokeCode(Register code, |
121 const ParameterCount& expected, | 121 const ParameterCount& expected, |
122 const ParameterCount& actual, | 122 const ParameterCount& actual, |
123 InvokeFlag flag); | 123 InvokeFlag flag); |
124 | 124 |
125 void InvokeCode(Handle<Code> code, | 125 void InvokeCode(Handle<Code> code, |
126 const ParameterCount& expected, | 126 const ParameterCount& expected, |
127 const ParameterCount& actual, | 127 const ParameterCount& actual, |
128 RelocInfo::Mode rmode, | 128 RelocInfo::Mode rmode, |
129 InvokeFlag flag); | 129 InvokeFlag flag); |
130 | 130 |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 void set_generating_stub(bool value) { generating_stub_ = value; } | 284 void set_generating_stub(bool value) { generating_stub_ = value; } |
285 bool generating_stub() { return generating_stub_; } | 285 bool generating_stub() { return generating_stub_; } |
286 void set_allow_stub_calls(bool value) { allow_stub_calls_ = value; } | 286 void set_allow_stub_calls(bool value) { allow_stub_calls_ = value; } |
287 bool allow_stub_calls() { return allow_stub_calls_; } | 287 bool allow_stub_calls() { return allow_stub_calls_; } |
288 | 288 |
289 private: | 289 private: |
290 List<Unresolved> unresolved_; | 290 List<Unresolved> unresolved_; |
291 bool generating_stub_; | 291 bool generating_stub_; |
292 bool allow_stub_calls_; | 292 bool allow_stub_calls_; |
293 Handle<Object> code_object_; // This handle will be patched with the code | 293 Handle<Object> code_object_; // This handle will be patched with the code |
294 // code object on installation. | 294 // object on installation. |
295 | 295 |
296 // Helper functions for generating invokes. | 296 // Helper functions for generating invokes. |
297 void InvokePrologue(const ParameterCount& expected, | 297 void InvokePrologue(const ParameterCount& expected, |
298 const ParameterCount& actual, | 298 const ParameterCount& actual, |
299 Handle<Code> code_constant, | 299 Handle<Code> code_constant, |
300 const Operand& code_operand, | 300 Register code_register, |
301 Label* done, | 301 Label* done, |
302 InvokeFlag flag); | 302 InvokeFlag flag); |
303 | 303 |
304 // Get the code for the given builtin. Returns if able to resolve | 304 // Get the code for the given builtin. Returns if able to resolve |
305 // the function in the 'resolved' flag. | 305 // the function in the 'resolved' flag. |
306 Handle<Code> ResolveBuiltin(Builtins::JavaScript id, bool* resolved); | 306 Handle<Code> ResolveBuiltin(Builtins::JavaScript id, bool* resolved); |
307 | 307 |
308 // Activation support. | 308 // Activation support. |
309 void EnterFrame(StackFrame::Type type); | 309 void EnterFrame(StackFrame::Type type); |
310 void LeaveFrame(StackFrame::Type type); | 310 void LeaveFrame(StackFrame::Type type); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 } \ | 367 } \ |
368 masm-> | 368 masm-> |
369 #else | 369 #else |
370 #define ACCESS_MASM(masm) masm-> | 370 #define ACCESS_MASM(masm) masm-> |
371 #endif | 371 #endif |
372 | 372 |
373 | 373 |
374 } } // namespace v8::internal | 374 } } // namespace v8::internal |
375 | 375 |
376 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ | 376 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ |
OLD | NEW |