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

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

Issue 2106113002: Revert of [builtins] New frame type for exits to C++ builtins (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 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
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/ia32/macro-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 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_IA32_MACRO_ASSEMBLER_IA32_H_ 5 #ifndef V8_IA32_MACRO_ASSEMBLER_IA32_H_
6 #define V8_IA32_MACRO_ASSEMBLER_IA32_H_ 6 #define V8_IA32_MACRO_ASSEMBLER_IA32_H_
7 7
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/bailout-reason.h" 9 #include "src/bailout-reason.h"
10 #include "src/frames.h" 10 #include "src/frames.h"
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 void DebugBreak(); 234 void DebugBreak();
235 235
236 // Generates function and stub prologue code. 236 // Generates function and stub prologue code.
237 void StubPrologue(StackFrame::Type type); 237 void StubPrologue(StackFrame::Type type);
238 void Prologue(bool code_pre_aging); 238 void Prologue(bool code_pre_aging);
239 239
240 // Enter specific kind of exit frame. Expects the number of 240 // Enter specific kind of exit frame. Expects the number of
241 // arguments in register eax and sets up the number of arguments in 241 // arguments in register eax and sets up the number of arguments in
242 // register edi and the pointer to the first argument in register 242 // register edi and the pointer to the first argument in register
243 // esi. 243 // esi.
244 void EnterExitFrame(int argc, bool save_doubles, StackFrame::Type frame_type); 244 void EnterExitFrame(int argc, bool save_doubles);
245 245
246 void EnterApiExitFrame(int argc); 246 void EnterApiExitFrame(int argc);
247 247
248 // Leave the current exit frame. Expects the return value in 248 // Leave the current exit frame. Expects the return value in
249 // register eax:edx (untouched) and the pointer to the first 249 // register eax:edx (untouched) and the pointer to the first
250 // argument in register esi (if pop_arguments == true). 250 // argument in register esi (if pop_arguments == true).
251 void LeaveExitFrame(bool save_doubles, bool pop_arguments = true); 251 void LeaveExitFrame(bool save_doubles, bool pop_arguments = true);
252 252
253 // Leave the current exit frame. Expects the return value in 253 // Leave the current exit frame. Expects the return value in
254 // register eax (untouched). 254 // register eax (untouched).
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 779
780 // Calls a C function and cleans up the space for arguments allocated 780 // Calls a C function and cleans up the space for arguments allocated
781 // by PrepareCallCFunction. The called function is not allowed to trigger a 781 // by PrepareCallCFunction. The called function is not allowed to trigger a
782 // garbage collection, since that might move the code and invalidate the 782 // garbage collection, since that might move the code and invalidate the
783 // return address (unless this is somehow accounted for by the called 783 // return address (unless this is somehow accounted for by the called
784 // function). 784 // function).
785 void CallCFunction(ExternalReference function, int num_arguments); 785 void CallCFunction(ExternalReference function, int num_arguments);
786 void CallCFunction(Register function, int num_arguments); 786 void CallCFunction(Register function, int num_arguments);
787 787
788 // Jump to a runtime routine. 788 // Jump to a runtime routine.
789 void JumpToExternalReference(const ExternalReference& ext, 789 void JumpToExternalReference(const ExternalReference& ext);
790 bool builtin_exit_frame = false);
791 790
792 // --------------------------------------------------------------------------- 791 // ---------------------------------------------------------------------------
793 // Utilities 792 // Utilities
794 793
795 void Ret(); 794 void Ret();
796 795
797 // Return and drop arguments from stack, where the number of arguments 796 // Return and drop arguments from stack, where the number of arguments
798 // may be bigger than 2^16 - 1. Requires a scratch register. 797 // may be bigger than 2^16 - 1. Requires a scratch register.
799 void Ret(int bytes_dropped, Register scratch); 798 void Ret(int bytes_dropped, Register scratch);
800 799
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
966 // This handle will be patched with the code object on installation. 965 // This handle will be patched with the code object on installation.
967 Handle<Object> code_object_; 966 Handle<Object> code_object_;
968 967
969 // Helper functions for generating invokes. 968 // Helper functions for generating invokes.
970 void InvokePrologue(const ParameterCount& expected, 969 void InvokePrologue(const ParameterCount& expected,
971 const ParameterCount& actual, Label* done, 970 const ParameterCount& actual, Label* done,
972 bool* definitely_mismatches, InvokeFlag flag, 971 bool* definitely_mismatches, InvokeFlag flag,
973 Label::Distance done_distance, 972 Label::Distance done_distance,
974 const CallWrapper& call_wrapper); 973 const CallWrapper& call_wrapper);
975 974
976 void EnterExitFramePrologue(StackFrame::Type frame_type); 975 void EnterExitFramePrologue();
977 void EnterExitFrameEpilogue(int argc, bool save_doubles); 976 void EnterExitFrameEpilogue(int argc, bool save_doubles);
978 977
979 void LeaveExitFrameEpilogue(bool restore_context); 978 void LeaveExitFrameEpilogue(bool restore_context);
980 979
981 // Allocation support helpers. 980 // Allocation support helpers.
982 void LoadAllocationTopHelper(Register result, Register scratch, 981 void LoadAllocationTopHelper(Register result, Register scratch,
983 AllocationFlags flags); 982 AllocationFlags flags);
984 983
985 void UpdateAllocationTopHelper(Register result_end, Register scratch, 984 void UpdateAllocationTopHelper(Register result_end, Register scratch,
986 AllocationFlags flags); 985 AllocationFlags flags);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
1075 } \ 1074 } \
1076 masm-> 1075 masm->
1077 #else 1076 #else
1078 #define ACCESS_MASM(masm) masm-> 1077 #define ACCESS_MASM(masm) masm->
1079 #endif 1078 #endif
1080 1079
1081 } // namespace internal 1080 } // namespace internal
1082 } // namespace v8 1081 } // namespace v8
1083 1082
1084 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ 1083 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_
OLDNEW
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/ia32/macro-assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698