OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 | 607 |
608 // Load the initial map from the global function. The registers | 608 // Load the initial map from the global function. The registers |
609 // function and map can be the same, function is then overwritten. | 609 // function and map can be the same, function is then overwritten. |
610 void LoadGlobalFunctionInitialMap(Register function, | 610 void LoadGlobalFunctionInitialMap(Register function, |
611 Register map, | 611 Register map, |
612 Register scratch); | 612 Register scratch); |
613 | 613 |
614 // ------------------------------------------------------------------------- | 614 // ------------------------------------------------------------------------- |
615 // JavaScript invokes. | 615 // JavaScript invokes. |
616 | 616 |
| 617 // Setup call kind marking in t1. The method takes t1 as an |
| 618 // explicit first parameter to make the code more readable at the |
| 619 // call sites. |
| 620 void SetCallKind(Register dst, CallKind kind); |
| 621 |
617 // Invoke the JavaScript function code by either calling or jumping. | 622 // Invoke the JavaScript function code by either calling or jumping. |
618 void InvokeCode(Register code, | 623 void InvokeCode(Register code, |
619 const ParameterCount& expected, | 624 const ParameterCount& expected, |
620 const ParameterCount& actual, | 625 const ParameterCount& actual, |
621 InvokeFlag flag, | 626 InvokeFlag flag, |
622 const CallWrapper& call_wrapper = NullCallWrapper()); | 627 const CallWrapper& call_wrapper = NullCallWrapper(), |
| 628 CallKind call_kind = CALL_AS_METHOD); |
623 | 629 |
624 void InvokeCode(Handle<Code> code, | 630 void InvokeCode(Handle<Code> code, |
625 const ParameterCount& expected, | 631 const ParameterCount& expected, |
626 const ParameterCount& actual, | 632 const ParameterCount& actual, |
627 RelocInfo::Mode rmode, | 633 RelocInfo::Mode rmode, |
628 InvokeFlag flag); | 634 InvokeFlag flag, |
| 635 CallKind call_kind = CALL_AS_METHOD); |
629 | 636 |
630 // Invoke the JavaScript function in the given register. Changes the | 637 // Invoke the JavaScript function in the given register. Changes the |
631 // current context to the context in the function before invoking. | 638 // current context to the context in the function before invoking. |
632 void InvokeFunction(Register function, | 639 void InvokeFunction(Register function, |
633 const ParameterCount& actual, | 640 const ParameterCount& actual, |
634 InvokeFlag flag, | 641 InvokeFlag flag, |
635 const CallWrapper& call_wrapper = NullCallWrapper()); | 642 const CallWrapper& call_wrapper = NullCallWrapper(), |
| 643 CallKind call_kind = CALL_AS_METHOD); |
636 | 644 |
637 void InvokeFunction(JSFunction* function, | 645 void InvokeFunction(JSFunction* function, |
638 const ParameterCount& actual, | 646 const ParameterCount& actual, |
639 InvokeFlag flag); | 647 InvokeFlag flag); |
640 | 648 |
641 | 649 |
642 void IsObjectJSObjectType(Register heap_object, | 650 void IsObjectJSObjectType(Register heap_object, |
643 Register map, | 651 Register map, |
644 Register scratch, | 652 Register scratch, |
645 Label* fail); | 653 Label* fail); |
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1091 Register r1 = zero_reg, const Operand& r2 = Operand(zero_reg), | 1099 Register r1 = zero_reg, const Operand& r2 = Operand(zero_reg), |
1092 BranchDelaySlot bd = PROTECT); | 1100 BranchDelaySlot bd = PROTECT); |
1093 | 1101 |
1094 // Helper functions for generating invokes. | 1102 // Helper functions for generating invokes. |
1095 void InvokePrologue(const ParameterCount& expected, | 1103 void InvokePrologue(const ParameterCount& expected, |
1096 const ParameterCount& actual, | 1104 const ParameterCount& actual, |
1097 Handle<Code> code_constant, | 1105 Handle<Code> code_constant, |
1098 Register code_reg, | 1106 Register code_reg, |
1099 Label* done, | 1107 Label* done, |
1100 InvokeFlag flag, | 1108 InvokeFlag flag, |
1101 const CallWrapper& call_wrapper = NullCallWrapper()); | 1109 const CallWrapper& call_wrapper = NullCallWrapper(), |
| 1110 CallKind call_kind = CALL_AS_METHOD); |
1102 | 1111 |
1103 // Get the code for the given builtin. Returns if able to resolve | 1112 // Get the code for the given builtin. Returns if able to resolve |
1104 // the function in the 'resolved' flag. | 1113 // the function in the 'resolved' flag. |
1105 Handle<Code> ResolveBuiltin(Builtins::JavaScript id, bool* resolved); | 1114 Handle<Code> ResolveBuiltin(Builtins::JavaScript id, bool* resolved); |
1106 | 1115 |
1107 // Activation support. | 1116 // Activation support. |
1108 void EnterFrame(StackFrame::Type type); | 1117 void EnterFrame(StackFrame::Type type); |
1109 void LeaveFrame(StackFrame::Type type); | 1118 void LeaveFrame(StackFrame::Type type); |
1110 | 1119 |
1111 void InitializeNewString(Register string, | 1120 void InitializeNewString(Register string, |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1196 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 1205 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
1197 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1206 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1198 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1207 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1199 #else | 1208 #else |
1200 #define ACCESS_MASM(masm) masm-> | 1209 #define ACCESS_MASM(masm) masm-> |
1201 #endif | 1210 #endif |
1202 | 1211 |
1203 } } // namespace v8::internal | 1212 } } // namespace v8::internal |
1204 | 1213 |
1205 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1214 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |