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

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

Issue 2090723005: [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
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_MIPS_MACRO_ASSEMBLER_MIPS_H_ 5 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
7 7
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/globals.h" 9 #include "src/globals.h"
10 #include "src/mips/assembler-mips.h" 10 #include "src/mips/assembler-mips.h"
(...skipping 991 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 Register scratch1, 1002 Register scratch1,
1003 Register scratch2, 1003 Register scratch2,
1004 FPURegister double_scratch0, 1004 FPURegister double_scratch0,
1005 FPURegister double_scratch1, 1005 FPURegister double_scratch1,
1006 Label* not_int32); 1006 Label* not_int32);
1007 1007
1008 // Enter exit frame. 1008 // Enter exit frame.
1009 // argc - argument count to be dropped by LeaveExitFrame. 1009 // argc - argument count to be dropped by LeaveExitFrame.
1010 // save_doubles - saves FPU registers on stack, currently disabled. 1010 // save_doubles - saves FPU registers on stack, currently disabled.
1011 // stack_space - extra stack space. 1011 // stack_space - extra stack space.
1012 void EnterExitFrame(bool save_doubles, 1012 void EnterExitFrame(bool save_doubles, int stack_space = 0,
1013 int stack_space = 0); 1013 StackFrame::Type frame_type = StackFrame::EXIT);
1014 1014
1015 // Leave the current exit frame. 1015 // Leave the current exit frame.
1016 void LeaveExitFrame(bool save_doubles, Register arg_count, 1016 void LeaveExitFrame(bool save_doubles, Register arg_count,
1017 bool restore_context, bool do_return = NO_EMIT_RETURN, 1017 bool restore_context, bool do_return = NO_EMIT_RETURN,
1018 bool argument_count_is_length = false); 1018 bool argument_count_is_length = false);
1019 1019
1020 // Get the actual activation frame alignment for target environment. 1020 // Get the actual activation frame alignment for target environment.
1021 static int ActivationFrameAlignment(); 1021 static int ActivationFrameAlignment();
1022 1022
1023 // Make sure the stack is aligned. Only emits code in debug mode. 1023 // Make sure the stack is aligned. Only emits code in debug mode.
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
1431 // There are two ways of passing double arguments on MIPS, depending on 1431 // There are two ways of passing double arguments on MIPS, depending on
1432 // whether soft or hard floating point ABI is used. These functions 1432 // whether soft or hard floating point ABI is used. These functions
1433 // abstract parameter passing for the three different ways we call 1433 // abstract parameter passing for the three different ways we call
1434 // C functions from generated code. 1434 // C functions from generated code.
1435 void MovToFloatParameter(DoubleRegister src); 1435 void MovToFloatParameter(DoubleRegister src);
1436 void MovToFloatParameters(DoubleRegister src1, DoubleRegister src2); 1436 void MovToFloatParameters(DoubleRegister src1, DoubleRegister src2);
1437 void MovToFloatResult(DoubleRegister src); 1437 void MovToFloatResult(DoubleRegister src);
1438 1438
1439 // Jump to the builtin routine. 1439 // Jump to the builtin routine.
1440 void JumpToExternalReference(const ExternalReference& builtin, 1440 void JumpToExternalReference(const ExternalReference& builtin,
1441 BranchDelaySlot bd = PROTECT); 1441 BranchDelaySlot bd = PROTECT,
1442 bool builtin_exit_frame = false);
1442 1443
1443 struct Unresolved { 1444 struct Unresolved {
1444 int pc; 1445 int pc;
1445 uint32_t flags; // See Bootstrapper::FixupFlags decoders/encoders. 1446 uint32_t flags; // See Bootstrapper::FixupFlags decoders/encoders.
1446 const char* name; 1447 const char* name;
1447 }; 1448 };
1448 1449
1449 Handle<Object> CodeObject() { 1450 Handle<Object> CodeObject() {
1450 DCHECK(!code_object_.is_null()); 1451 DCHECK(!code_object_.is_null());
1451 return code_object_; 1452 return code_object_;
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
1896 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1897 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1897 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1898 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1898 #else 1899 #else
1899 #define ACCESS_MASM(masm) masm-> 1900 #define ACCESS_MASM(masm) masm->
1900 #endif 1901 #endif
1901 1902
1902 } // namespace internal 1903 } // namespace internal
1903 } // namespace v8 1904 } // namespace v8
1904 1905
1905 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 1906 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698