Changeset 44344 in webkit for trunk/JavaScriptCore
- Timestamp:
- Jun 1, 2009, 10:36:18 PM (16 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r44343 r44344 1 2009-06-01 Gavin Barraclough <[email protected]> 2 3 Reviewed by Olliej Hunt. 4 5 Change JITStub functions from being static members on the JITStub class to be 6 global extern "C" functions, and switch their the function signature declaration 7 in the definition of the functions to be C-macro generated. This makes it easier 8 to work with the stub functions from assembler code (since the names no longer 9 require mangling), and by delaring the functions with a macro we can look at 10 also auto-generating asm thunks to wrap the JITStub functions to perform the 11 work currently in 'restoreArgumentReference' (as a memory saving). 12 13 Making this change also forces us to be a bit more realistic about what is private 14 on the Register and CallFrame objects. Presently most everything on these classes 15 is private, and the classes have plenty of friends. We could befriend all the 16 global functions to perpetuate the delusion of encapsulation, but using friends is 17 a bit of a sledgehammer solution here - since friends can poke around with all of 18 the class's privates, and since all the major classes taht operate on Regsiters are 19 currently friends, right there is currently in practice very little protection at 20 all. Better to start removing friend delclarations, and exposing just the parts 21 that need to be exposed. 22 23 * interpreter/CallFrame.h: 24 (JSC::ExecState::returnPC): 25 (JSC::ExecState::setCallerFrame): 26 (JSC::ExecState::returnValueRegister): 27 (JSC::ExecState::setArgumentCount): 28 (JSC::ExecState::setCallee): 29 (JSC::ExecState::setCodeBlock): 30 * interpreter/Interpreter.h: 31 * interpreter/Register.h: 32 (JSC::Register::Register): 33 (JSC::Register::i): 34 * jit/JITStubs.cpp: 35 (JSC::): 36 (JSC::JITThunks::JITThunks): 37 (JSC::JITThunks::tryCachePutByID): 38 (JSC::JITThunks::tryCacheGetByID): 39 (JSC::JITStubs::DEFINE_STUB_FUNCTION): 40 * jit/JITStubs.h: 41 (JSC::JITStubs::): 42 * runtime/JSFunction.h: 43 (JSC::JSFunction::nativeFunction): 44 (JSC::JSFunction::classInfo): 45 * runtime/JSGlobalData.h: 46 1 47 2009-06-01 Oliver Hunt <[email protected]> 2 48 -
trunk/JavaScriptCore/interpreter/CallFrame.h
r44224 r44344 96 96 static const HashTable* stringTable(CallFrame* callFrame) { return callFrame->globalData().stringTable; } 97 97 98 private:99 friend class Arguments;100 friend class JSActivation;101 friend class JSGlobalObject;102 friend class Interpreter;103 friend class JITStubs;104 friend struct CallFrameClosure;105 106 98 static CallFrame* create(Register* callFrameBase) { return static_cast<CallFrame*>(callFrameBase); } 107 99 Register* registers() { return this; } … … 112 104 Arguments* optionalCalleeArguments() const { return this[RegisterFile::OptionalCalleeArguments].arguments(); } 113 105 Instruction* returnPC() const { return this[RegisterFile::ReturnPC].vPC(); } 114 int returnValueRegister() const { return this[RegisterFile::ReturnValueRegister].i(); }115 106 116 void setArgumentCount(int count) { this[RegisterFile::ArgumentCount] = count; }117 void setCallee(JSFunction* callee) { this[RegisterFile::Callee] = callee; }118 107 void setCalleeArguments(Arguments* arguments) { this[RegisterFile::OptionalCalleeArguments] = arguments; } 119 108 void setCallerFrame(CallFrame* callerFrame) { this[RegisterFile::CallerFrame] = callerFrame; } 120 void setCodeBlock(CodeBlock* codeBlock) { this[RegisterFile::CodeBlock] = codeBlock; }121 109 void setScopeChain(ScopeChainNode* scopeChain) { this[RegisterFile::ScopeChain] = scopeChain; } 122 110 … … 136 124 } 137 125 126 private: 127 friend class Arguments; 128 friend class JSActivation; 129 friend class JSGlobalObject; 130 friend class Interpreter; 131 friend struct CallFrameClosure; 132 133 int returnValueRegister() const { return this[RegisterFile::ReturnValueRegister].i(); } 134 135 void setArgumentCount(int count) { this[RegisterFile::ArgumentCount] = count; } 136 void setCallee(JSFunction* callee) { this[RegisterFile::Callee] = callee; } 137 void setCodeBlock(CodeBlock* codeBlock) { this[RegisterFile::CodeBlock] = codeBlock; } 138 138 139 static const intptr_t HostCallFrameFlag = 1; 139 140 -
trunk/JavaScriptCore/interpreter/Interpreter.h
r44336 r44344 68 68 class Interpreter : public WTF::FastAllocBase { 69 69 friend class JIT; 70 friend class JITStubs;71 70 friend class CachedCall; 72 71 public: … … 109 108 SamplingTool* sampler() { return m_sampler; } 110 109 110 NEVER_INLINE JSValue callEval(CallFrame*, RegisterFile*, Register* argv, int argc, int registerOffset, JSValue& exceptionValue); 111 NEVER_INLINE HandlerInfo* throwException(CallFrame*&, JSValue&, unsigned bytecodeOffset, bool); 112 NEVER_INLINE void debug(CallFrame*, DebugHookID, int firstLine, int lastLine); 113 111 114 private: 112 115 enum ExecutionFlag { Normal, InitializeAndReturn }; … … 116 119 JSValue execute(CallFrameClosure&, JSValue* exception); 117 120 118 NEVER_INLINE JSValue callEval(CallFrame*, RegisterFile*, Register* argv, int argc, int registerOffset, JSValue& exceptionValue);119 121 JSValue execute(EvalNode*, CallFrame*, JSObject* thisObject, int globalRegisterOffset, ScopeChainNode*, JSValue* exception); 120 122 121 NEVER_INLINE void debug(CallFrame*, DebugHookID, int firstLine, int lastLine);122 123 #if USE(INTERPRETER) 123 124 NEVER_INLINE bool resolve(CallFrame*, Instruction*, JSValue& exceptionValue); … … 136 137 137 138 NEVER_INLINE bool unwindCallFrame(CallFrame*&, JSValue, unsigned& bytecodeOffset, CodeBlock*&); 138 NEVER_INLINE HandlerInfo* throwException(CallFrame*&, JSValue&, unsigned bytecodeOffset, bool);139 139 140 140 static ALWAYS_INLINE CallFrame* slideRegisterWindowForCall(CodeBlock*, RegisterFile*, CallFrame*, size_t registerOffset, int argc); -
trunk/JavaScriptCore/interpreter/Register.h
r43153 r44344 31 31 32 32 #include "JSValue.h" 33 #include <wtf/Assertions.h> 33 34 #include <wtf/VectorTraits.h> 34 35 … … 51 52 Register(); 52 53 Register(JSValue); 54 Register(Arguments*); 53 55 54 56 JSValue jsValue() const; … … 57 59 void mark(); 58 60 61 int32_t i() const; 62 void* v() const; 63 59 64 private: 60 65 friend class ExecState; 61 66 friend class Interpreter; 62 friend class JITStubs;63 67 64 68 // Only CallFrame, Interpreter, and JITStubs should use these functions. … … 67 71 68 72 Register(JSActivation*); 69 Register(Arguments*);70 73 Register(CallFrame*); 71 74 Register(CodeBlock*); … … 74 77 Register(ScopeChainNode*); 75 78 Register(Instruction*); 76 77 intptr_t i() const;78 void* v() const;79 79 80 80 JSActivation* activation() const; … … 174 174 ALWAYS_INLINE Register::Register(intptr_t i) 175 175 { 176 // See comment on 'i()' below. 177 ASSERT(i == static_cast<int32_t>(i)); 176 178 u.i = i; 177 179 } 178 180 179 ALWAYS_INLINE intptr_t Register::i() const 180 { 181 return u.i; 181 // Read 'i' as a 32-bit integer; we only use it to hold 32-bit values, 182 // and we only write 32-bits when writing the arg count from JIT code. 183 ALWAYS_INLINE int32_t Register::i() const 184 { 185 return static_cast<int32_t>(u.i); 182 186 } 183 187 -
trunk/JavaScriptCore/jit/JITStubs.cpp
r44171 r44344 102 102 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" 103 103 #if USE(JIT_STUB_ARGUMENT_VA_LIST) 104 "call " SYMBOL_STRING( _ZN3JSC8JITStubs12cti_vm_throwEPvz) "\n"104 "call " SYMBOL_STRING(cti_vm_throw) "\n" 105 105 #else 106 106 #if USE(JIT_STUB_ARGUMENT_REGISTER) … … 109 109 "movl %esp, 0(%esp)" "\n" 110 110 #endif 111 "call " SYMBOL_STRING( _ZN3JSC8JITStubs12cti_vm_throwEPPv) "\n"111 "call " SYMBOL_STRING(cti_vm_throw) "\n" 112 112 #endif 113 113 "addl $0x1c, %esp" "\n" … … 164 164 #if USE(JIT_STUB_ARGUMENT_REGISTER) 165 165 "movq %rsp, %rdi" "\n" 166 "call " SYMBOL_STRING( _ZN3JSC8JITStubs12cti_vm_throwEPPv) "\n"166 "call " SYMBOL_STRING(cti_vm_throw) "\n" 167 167 #else // JIT_STUB_ARGUMENT_VA_LIST or JIT_STUB_ARGUMENT_STACK 168 168 #error "JIT_STUB_ARGUMENT configuration not supported." … … 218 218 #error "JIT_STUB_ARGUMENT configuration not supported." 219 219 #endif 220 call JSC::JITStubs::cti_vm_throw;220 call cti_vm_throw; 221 221 add esp, 0x1c; 222 222 pop ebx; … … 238 238 #endif 239 239 240 JIT Stubs::JITStubs(JSGlobalData* globalData)240 JITThunks::JITThunks(JSGlobalData* globalData) 241 241 : m_ctiArrayLengthTrampoline(0) 242 242 , m_ctiStringLengthTrampoline(0) … … 251 251 #if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS) 252 252 253 NEVER_INLINE void JIT Stubs::tryCachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValue baseValue, const PutPropertySlot& slot)253 NEVER_INLINE void JITThunks::tryCachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValue baseValue, const PutPropertySlot& slot) 254 254 { 255 255 // The interpreter checks for recursion here; I do not believe this can occur in CTI. … … 295 295 } 296 296 297 NEVER_INLINE void JIT Stubs::tryCacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValue baseValue, const Identifier& propertyName, const PropertySlot& slot)297 NEVER_INLINE void JITThunks::tryCacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValue baseValue, const Identifier& propertyName, const PropertySlot& slot) 298 298 { 299 299 // FIXME: Write a test that proves we need to check for recursion here just … … 469 469 } while (0) 470 470 471 472 JSObject* JITStubs::cti_op_convert_this(STUB_ARGS_DECLARATION) 471 namespace JITStubs { 472 473 #define DEFINE_STUB_FUNCTION(rtype, op) rtype cti_##op(STUB_ARGS_DECLARATION) 474 475 DEFINE_STUB_FUNCTION(JSObject*, op_convert_this) 473 476 { 474 477 STUB_INIT_STACK_FRAME(stackFrame); … … 482 485 } 483 486 484 void JITStubs::cti_op_end(STUB_ARGS_DECLARATION)487 DEFINE_STUB_FUNCTION(void, op_end) 485 488 { 486 489 STUB_INIT_STACK_FRAME(stackFrame); … … 491 494 } 492 495 493 EncodedJSValue JITStubs::cti_op_add(STUB_ARGS_DECLARATION)496 DEFINE_STUB_FUNCTION(EncodedJSValue, op_add) 494 497 { 495 498 STUB_INIT_STACK_FRAME(stackFrame); … … 536 539 } 537 540 538 EncodedJSValue JITStubs::cti_op_pre_inc(STUB_ARGS_DECLARATION)541 DEFINE_STUB_FUNCTION(EncodedJSValue, op_pre_inc) 539 542 { 540 543 STUB_INIT_STACK_FRAME(stackFrame); … … 548 551 } 549 552 550 int JITStubs::cti_timeout_check(STUB_ARGS_DECLARATION)553 DEFINE_STUB_FUNCTION(int, timeout_check) 551 554 { 552 555 STUB_INIT_STACK_FRAME(stackFrame); … … 563 566 } 564 567 565 void JITStubs::cti_register_file_check(STUB_ARGS_DECLARATION)566 { 567 STUB_INIT_STACK_FRAME(stackFrame); 568 569 if (LIKELY(stackFrame.registerFile->grow( stackFrame.callFrame + stackFrame.callFrame->codeBlock()->m_numCalleeRegisters)))568 DEFINE_STUB_FUNCTION(void, register_file_check) 569 { 570 STUB_INIT_STACK_FRAME(stackFrame); 571 572 if (LIKELY(stackFrame.registerFile->grow(&stackFrame.callFrame->registers()[stackFrame.callFrame->codeBlock()->m_numCalleeRegisters]))) 570 573 return; 571 574 … … 577 580 } 578 581 579 int JITStubs::cti_op_loop_if_less(STUB_ARGS_DECLARATION)582 DEFINE_STUB_FUNCTION(int, op_loop_if_less) 580 583 { 581 584 STUB_INIT_STACK_FRAME(stackFrame); … … 590 593 } 591 594 592 int JITStubs::cti_op_loop_if_lesseq(STUB_ARGS_DECLARATION)595 DEFINE_STUB_FUNCTION(int, op_loop_if_lesseq) 593 596 { 594 597 STUB_INIT_STACK_FRAME(stackFrame); … … 603 606 } 604 607 605 JSObject* JITStubs::cti_op_new_object(STUB_ARGS_DECLARATION)608 DEFINE_STUB_FUNCTION(JSObject*, op_new_object) 606 609 { 607 610 STUB_INIT_STACK_FRAME(stackFrame); … … 610 613 } 611 614 612 void JITStubs::cti_op_put_by_id_generic(STUB_ARGS_DECLARATION)615 DEFINE_STUB_FUNCTION(void, op_put_by_id_generic) 613 616 { 614 617 STUB_INIT_STACK_FRAME(stackFrame); … … 619 622 } 620 623 621 EncodedJSValue JITStubs::cti_op_get_by_id_generic(STUB_ARGS_DECLARATION)624 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_generic) 622 625 { 623 626 STUB_INIT_STACK_FRAME(stackFrame); … … 636 639 #if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS) 637 640 638 void JITStubs::cti_op_put_by_id(STUB_ARGS_DECLARATION)641 DEFINE_STUB_FUNCTION(void, op_put_by_id) 639 642 { 640 643 STUB_INIT_STACK_FRAME(stackFrame); … … 651 654 } 652 655 653 void JITStubs::cti_op_put_by_id_second(STUB_ARGS_DECLARATION)656 DEFINE_STUB_FUNCTION(void, op_put_by_id_second) 654 657 { 655 658 STUB_INIT_STACK_FRAME(stackFrame); … … 657 660 PutPropertySlot slot; 658 661 stackFrame.args[0].jsValue().put(stackFrame.callFrame, stackFrame.args[1].identifier(), stackFrame.args[2].jsValue(), slot); 659 tryCachePutByID(stackFrame.callFrame, stackFrame.callFrame->codeBlock(), STUB_RETURN_ADDRESS, stackFrame.args[0].jsValue(), slot);660 CHECK_FOR_EXCEPTION_AT_END(); 661 } 662 663 void JITStubs::cti_op_put_by_id_fail(STUB_ARGS_DECLARATION)662 JITThunks::tryCachePutByID(stackFrame.callFrame, stackFrame.callFrame->codeBlock(), STUB_RETURN_ADDRESS, stackFrame.args[0].jsValue(), slot); 663 CHECK_FOR_EXCEPTION_AT_END(); 664 } 665 666 DEFINE_STUB_FUNCTION(void, op_put_by_id_fail) 664 667 { 665 668 STUB_INIT_STACK_FRAME(stackFrame); … … 674 677 } 675 678 676 EncodedJSValue JITStubs::cti_op_get_by_id(STUB_ARGS_DECLARATION)679 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id) 677 680 { 678 681 STUB_INIT_STACK_FRAME(stackFrame); … … 691 694 } 692 695 693 EncodedJSValue JITStubs::cti_op_get_by_id_method_check(STUB_ARGS_DECLARATION)696 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_method_check) 694 697 { 695 698 STUB_INIT_STACK_FRAME(stackFrame); … … 708 711 } 709 712 710 EncodedJSValue JITStubs::cti_op_get_by_id_method_check_second(STUB_ARGS_DECLARATION)713 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_method_check_second) 711 714 { 712 715 STUB_INIT_STACK_FRAME(stackFrame); … … 773 776 } 774 777 775 EncodedJSValue JITStubs::cti_op_get_by_id_second(STUB_ARGS_DECLARATION)778 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_second) 776 779 { 777 780 STUB_INIT_STACK_FRAME(stackFrame); … … 784 787 JSValue result = baseValue.get(callFrame, ident, slot); 785 788 786 tryCacheGetByID(callFrame, callFrame->codeBlock(), STUB_RETURN_ADDRESS, baseValue, ident, slot);787 788 CHECK_FOR_EXCEPTION_AT_END(); 789 return JSValue::encode(result); 790 } 791 792 EncodedJSValue JITStubs::cti_op_get_by_id_self_fail(STUB_ARGS_DECLARATION)789 JITThunks::tryCacheGetByID(callFrame, callFrame->codeBlock(), STUB_RETURN_ADDRESS, baseValue, ident, slot); 790 791 CHECK_FOR_EXCEPTION_AT_END(); 792 return JSValue::encode(result); 793 } 794 795 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_self_fail) 793 796 { 794 797 STUB_INIT_STACK_FRAME(stackFrame); … … 865 868 } 866 869 867 EncodedJSValue JITStubs::cti_op_get_by_id_proto_list(STUB_ARGS_DECLARATION)870 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_proto_list) 868 871 { 869 872 STUB_INIT_STACK_FRAME(stackFrame); … … 917 920 } 918 921 919 EncodedJSValue JITStubs::cti_op_get_by_id_proto_list_full(STUB_ARGS_DECLARATION)922 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_proto_list_full) 920 923 { 921 924 STUB_INIT_STACK_FRAME(stackFrame); … … 929 932 } 930 933 931 EncodedJSValue JITStubs::cti_op_get_by_id_proto_fail(STUB_ARGS_DECLARATION)934 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_proto_fail) 932 935 { 933 936 STUB_INIT_STACK_FRAME(stackFrame); … … 941 944 } 942 945 943 EncodedJSValue JITStubs::cti_op_get_by_id_array_fail(STUB_ARGS_DECLARATION)946 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_array_fail) 944 947 { 945 948 STUB_INIT_STACK_FRAME(stackFrame); … … 953 956 } 954 957 955 EncodedJSValue JITStubs::cti_op_get_by_id_string_fail(STUB_ARGS_DECLARATION)958 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_string_fail) 956 959 { 957 960 STUB_INIT_STACK_FRAME(stackFrame); … … 967 970 #endif 968 971 969 EncodedJSValue JITStubs::cti_op_instanceof(STUB_ARGS_DECLARATION)972 DEFINE_STUB_FUNCTION(EncodedJSValue, op_instanceof) 970 973 { 971 974 STUB_INIT_STACK_FRAME(stackFrame); … … 1010 1013 } 1011 1014 1012 EncodedJSValue JITStubs::cti_op_del_by_id(STUB_ARGS_DECLARATION)1015 DEFINE_STUB_FUNCTION(EncodedJSValue, op_del_by_id) 1013 1016 { 1014 1017 STUB_INIT_STACK_FRAME(stackFrame); … … 1023 1026 } 1024 1027 1025 EncodedJSValue JITStubs::cti_op_mul(STUB_ARGS_DECLARATION)1028 DEFINE_STUB_FUNCTION(EncodedJSValue, op_mul) 1026 1029 { 1027 1030 STUB_INIT_STACK_FRAME(stackFrame); … … 1041 1044 } 1042 1045 1043 JSObject* JITStubs::cti_op_new_func(STUB_ARGS_DECLARATION)1046 DEFINE_STUB_FUNCTION(JSObject*, op_new_func) 1044 1047 { 1045 1048 STUB_INIT_STACK_FRAME(stackFrame); … … 1048 1051 } 1049 1052 1050 void* JITStubs::cti_op_call_JSFunction(STUB_ARGS_DECLARATION)1053 DEFINE_STUB_FUNCTION(void*, op_call_JSFunction) 1051 1054 { 1052 1055 STUB_INIT_STACK_FRAME(stackFrame); … … 1065 1068 } 1066 1069 1067 VoidPtrPair JITStubs::cti_op_call_arityCheck(STUB_ARGS_DECLARATION)1070 DEFINE_STUB_FUNCTION(VoidPtrPair, op_call_arityCheck) 1068 1071 { 1069 1072 STUB_INIT_STACK_FRAME(stackFrame); … … 1110 1113 } 1111 1114 1112 void* JITStubs::cti_vm_dontLazyLinkCall(STUB_ARGS_DECLARATION)1115 DEFINE_STUB_FUNCTION(void*, vm_dontLazyLinkCall) 1113 1116 { 1114 1117 STUB_INIT_STACK_FRAME(stackFrame); … … 1122 1125 } 1123 1126 1124 void* JITStubs::cti_vm_lazyLinkCall(STUB_ARGS_DECLARATION)1127 DEFINE_STUB_FUNCTION(void*, vm_lazyLinkCall) 1125 1128 { 1126 1129 STUB_INIT_STACK_FRAME(stackFrame); … … 1139 1142 } 1140 1143 1141 JSObject* JITStubs::cti_op_push_activation(STUB_ARGS_DECLARATION)1144 DEFINE_STUB_FUNCTION(JSObject*, op_push_activation) 1142 1145 { 1143 1146 STUB_INIT_STACK_FRAME(stackFrame); … … 1148 1151 } 1149 1152 1150 EncodedJSValue JITStubs::cti_op_call_NotJSFunction(STUB_ARGS_DECLARATION)1153 DEFINE_STUB_FUNCTION(EncodedJSValue, op_call_NotJSFunction) 1151 1154 { 1152 1155 STUB_INIT_STACK_FRAME(stackFrame); … … 1197 1200 } 1198 1201 1199 void JITStubs::cti_op_create_arguments(STUB_ARGS_DECLARATION)1202 DEFINE_STUB_FUNCTION(void, op_create_arguments) 1200 1203 { 1201 1204 STUB_INIT_STACK_FRAME(stackFrame); … … 1206 1209 } 1207 1210 1208 void JITStubs::cti_op_create_arguments_no_params(STUB_ARGS_DECLARATION)1211 DEFINE_STUB_FUNCTION(void, op_create_arguments_no_params) 1209 1212 { 1210 1213 STUB_INIT_STACK_FRAME(stackFrame); … … 1215 1218 } 1216 1219 1217 void JITStubs::cti_op_tear_off_activation(STUB_ARGS_DECLARATION)1220 DEFINE_STUB_FUNCTION(void, op_tear_off_activation) 1218 1221 { 1219 1222 STUB_INIT_STACK_FRAME(stackFrame); … … 1223 1226 } 1224 1227 1225 void JITStubs::cti_op_tear_off_arguments(STUB_ARGS_DECLARATION)1228 DEFINE_STUB_FUNCTION(void, op_tear_off_arguments) 1226 1229 { 1227 1230 STUB_INIT_STACK_FRAME(stackFrame); … … 1232 1235 } 1233 1236 1234 void JITStubs::cti_op_profile_will_call(STUB_ARGS_DECLARATION)1237 DEFINE_STUB_FUNCTION(void, op_profile_will_call) 1235 1238 { 1236 1239 STUB_INIT_STACK_FRAME(stackFrame); … … 1240 1243 } 1241 1244 1242 void JITStubs::cti_op_profile_did_call(STUB_ARGS_DECLARATION)1245 DEFINE_STUB_FUNCTION(void, op_profile_did_call) 1243 1246 { 1244 1247 STUB_INIT_STACK_FRAME(stackFrame); … … 1248 1251 } 1249 1252 1250 void JITStubs::cti_op_ret_scopeChain(STUB_ARGS_DECLARATION)1253 DEFINE_STUB_FUNCTION(void, op_ret_scopeChain) 1251 1254 { 1252 1255 STUB_INIT_STACK_FRAME(stackFrame); … … 1256 1259 } 1257 1260 1258 JSObject* JITStubs::cti_op_new_array(STUB_ARGS_DECLARATION)1261 DEFINE_STUB_FUNCTION(JSObject*, op_new_array) 1259 1262 { 1260 1263 STUB_INIT_STACK_FRAME(stackFrame); … … 1264 1267 } 1265 1268 1266 EncodedJSValue JITStubs::cti_op_resolve(STUB_ARGS_DECLARATION)1269 DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve) 1267 1270 { 1268 1271 STUB_INIT_STACK_FRAME(stackFrame); … … 1292 1295 } 1293 1296 1294 JSObject* JITStubs::cti_op_construct_JSConstruct(STUB_ARGS_DECLARATION)1297 DEFINE_STUB_FUNCTION(JSObject*, op_construct_JSConstruct) 1295 1298 { 1296 1299 STUB_INIT_STACK_FRAME(stackFrame); … … 1318 1321 } 1319 1322 1320 EncodedJSValue JITStubs::cti_op_construct_NotJSConstruct(STUB_ARGS_DECLARATION)1323 DEFINE_STUB_FUNCTION(EncodedJSValue, op_construct_NotJSConstruct) 1321 1324 { 1322 1325 STUB_INIT_STACK_FRAME(stackFrame); … … 1352 1355 } 1353 1356 1354 EncodedJSValue JITStubs::cti_op_get_by_val(STUB_ARGS_DECLARATION)1357 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_val) 1355 1358 { 1356 1359 STUB_INIT_STACK_FRAME(stackFrame); … … 1391 1394 } 1392 1395 1393 EncodedJSValue JITStubs::cti_op_get_by_val_string(STUB_ARGS_DECLARATION)1396 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_val_string) 1394 1397 { 1395 1398 STUB_INIT_STACK_FRAME(stackFrame); … … 1422 1425 1423 1426 1424 EncodedJSValue JITStubs::cti_op_get_by_val_byte_array(STUB_ARGS_DECLARATION)1427 DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_val_byte_array) 1425 1428 { 1426 1429 STUB_INIT_STACK_FRAME(stackFrame); … … 1453 1456 } 1454 1457 1455 EncodedJSValue JITStubs::cti_op_resolve_func(STUB_ARGS_DECLARATION)1458 DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_func) 1456 1459 { 1457 1460 STUB_INIT_STACK_FRAME(stackFrame); … … 1497 1500 } 1498 1501 1499 EncodedJSValue JITStubs::cti_op_sub(STUB_ARGS_DECLARATION)1502 DEFINE_STUB_FUNCTION(EncodedJSValue, op_sub) 1500 1503 { 1501 1504 STUB_INIT_STACK_FRAME(stackFrame); … … 1515 1518 } 1516 1519 1517 void JITStubs::cti_op_put_by_val(STUB_ARGS_DECLARATION)1520 DEFINE_STUB_FUNCTION(void, op_put_by_val) 1518 1521 { 1519 1522 STUB_INIT_STACK_FRAME(stackFrame); … … 1563 1566 } 1564 1567 1565 void JITStubs::cti_op_put_by_val_array(STUB_ARGS_DECLARATION)1568 DEFINE_STUB_FUNCTION(void, op_put_by_val_array) 1566 1569 { 1567 1570 STUB_INIT_STACK_FRAME(stackFrame); … … 1590 1593 } 1591 1594 1592 void JITStubs::cti_op_put_by_val_byte_array(STUB_ARGS_DECLARATION)1595 DEFINE_STUB_FUNCTION(void, op_put_by_val_byte_array) 1593 1596 { 1594 1597 STUB_INIT_STACK_FRAME(stackFrame); … … 1633 1636 } 1634 1637 1635 EncodedJSValue JITStubs::cti_op_lesseq(STUB_ARGS_DECLARATION)1638 DEFINE_STUB_FUNCTION(EncodedJSValue, op_lesseq) 1636 1639 { 1637 1640 STUB_INIT_STACK_FRAME(stackFrame); … … 1643 1646 } 1644 1647 1645 int JITStubs::cti_op_loop_if_true(STUB_ARGS_DECLARATION)1648 DEFINE_STUB_FUNCTION(int, op_loop_if_true) 1646 1649 { 1647 1650 STUB_INIT_STACK_FRAME(stackFrame); … … 1656 1659 } 1657 1660 1658 int JITStubs::cti_op_load_varargs(STUB_ARGS_DECLARATION)1661 DEFINE_STUB_FUNCTION(int, op_load_varargs) 1659 1662 { 1660 1663 STUB_INIT_STACK_FRAME(stackFrame); … … 1662 1665 RegisterFile* registerFile = stackFrame.registerFile; 1663 1666 int argsOffset = stackFrame.args[0].int32(); 1664 JSValue arguments = callFrame [argsOffset].jsValue();1667 JSValue arguments = callFrame->registers()[argsOffset].jsValue(); 1665 1668 uint32_t argCount = 0; 1666 1669 if (!arguments) { 1667 int providedParams = callFrame [RegisterFile::ArgumentCount].u.i- 1;1670 int providedParams = callFrame->registers()[RegisterFile::ArgumentCount].i() - 1; 1668 1671 argCount = providedParams; 1669 1672 int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize; … … 1673 1676 VM_THROW_EXCEPTION(); 1674 1677 } 1675 int32_t expectedParams = asFunction(callFrame [RegisterFile::Callee].jsValue())->body()->parameterCount();1678 int32_t expectedParams = asFunction(callFrame->registers()[RegisterFile::Callee].jsValue())->body()->parameterCount(); 1676 1679 int32_t inplaceArgs = min(providedParams, expectedParams); 1677 1680 … … 1744 1747 } 1745 1748 1746 EncodedJSValue JITStubs::cti_op_negate(STUB_ARGS_DECLARATION)1749 DEFINE_STUB_FUNCTION(EncodedJSValue, op_negate) 1747 1750 { 1748 1751 STUB_INIT_STACK_FRAME(stackFrame); … … 1760 1763 } 1761 1764 1762 EncodedJSValue JITStubs::cti_op_resolve_base(STUB_ARGS_DECLARATION)1765 DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_base) 1763 1766 { 1764 1767 STUB_INIT_STACK_FRAME(stackFrame); … … 1767 1770 } 1768 1771 1769 EncodedJSValue JITStubs::cti_op_resolve_skip(STUB_ARGS_DECLARATION)1772 DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_skip) 1770 1773 { 1771 1774 STUB_INIT_STACK_FRAME(stackFrame); … … 1800 1803 } 1801 1804 1802 EncodedJSValue JITStubs::cti_op_resolve_global(STUB_ARGS_DECLARATION)1805 DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_global) 1803 1806 { 1804 1807 STUB_INIT_STACK_FRAME(stackFrame); … … 1832 1835 } 1833 1836 1834 EncodedJSValue JITStubs::cti_op_div(STUB_ARGS_DECLARATION)1837 DEFINE_STUB_FUNCTION(EncodedJSValue, op_div) 1835 1838 { 1836 1839 STUB_INIT_STACK_FRAME(stackFrame); … … 1850 1853 } 1851 1854 1852 EncodedJSValue JITStubs::cti_op_pre_dec(STUB_ARGS_DECLARATION)1855 DEFINE_STUB_FUNCTION(EncodedJSValue, op_pre_dec) 1853 1856 { 1854 1857 STUB_INIT_STACK_FRAME(stackFrame); … … 1862 1865 } 1863 1866 1864 int JITStubs::cti_op_jless(STUB_ARGS_DECLARATION)1867 DEFINE_STUB_FUNCTION(int, op_jless) 1865 1868 { 1866 1869 STUB_INIT_STACK_FRAME(stackFrame); … … 1875 1878 } 1876 1879 1877 int JITStubs::cti_op_jlesseq(STUB_ARGS_DECLARATION)1880 DEFINE_STUB_FUNCTION(int, op_jlesseq) 1878 1881 { 1879 1882 STUB_INIT_STACK_FRAME(stackFrame); … … 1888 1891 } 1889 1892 1890 EncodedJSValue JITStubs::cti_op_not(STUB_ARGS_DECLARATION)1893 DEFINE_STUB_FUNCTION(EncodedJSValue, op_not) 1891 1894 { 1892 1895 STUB_INIT_STACK_FRAME(stackFrame); … … 1901 1904 } 1902 1905 1903 int JITStubs::cti_op_jtrue(STUB_ARGS_DECLARATION)1906 DEFINE_STUB_FUNCTION(int, op_jtrue) 1904 1907 { 1905 1908 STUB_INIT_STACK_FRAME(stackFrame); … … 1914 1917 } 1915 1918 1916 EncodedJSValue JITStubs::cti_op_post_inc(STUB_ARGS_DECLARATION)1919 DEFINE_STUB_FUNCTION(EncodedJSValue, op_post_inc) 1917 1920 { 1918 1921 STUB_INIT_STACK_FRAME(stackFrame); … … 1929 1932 } 1930 1933 1931 EncodedJSValue JITStubs::cti_op_eq(STUB_ARGS_DECLARATION)1934 DEFINE_STUB_FUNCTION(EncodedJSValue, op_eq) 1932 1935 { 1933 1936 STUB_INIT_STACK_FRAME(stackFrame); … … 1944 1947 } 1945 1948 1946 EncodedJSValue JITStubs::cti_op_lshift(STUB_ARGS_DECLARATION)1949 DEFINE_STUB_FUNCTION(EncodedJSValue, op_lshift) 1947 1950 { 1948 1951 STUB_INIT_STACK_FRAME(stackFrame); … … 1964 1967 } 1965 1968 1966 EncodedJSValue JITStubs::cti_op_bitand(STUB_ARGS_DECLARATION)1969 DEFINE_STUB_FUNCTION(EncodedJSValue, op_bitand) 1967 1970 { 1968 1971 STUB_INIT_STACK_FRAME(stackFrame); … … 1982 1985 } 1983 1986 1984 EncodedJSValue JITStubs::cti_op_rshift(STUB_ARGS_DECLARATION)1987 DEFINE_STUB_FUNCTION(EncodedJSValue, op_rshift) 1985 1988 { 1986 1989 STUB_INIT_STACK_FRAME(stackFrame); … … 2002 2005 } 2003 2006 2004 EncodedJSValue JITStubs::cti_op_bitnot(STUB_ARGS_DECLARATION)2007 DEFINE_STUB_FUNCTION(EncodedJSValue, op_bitnot) 2005 2008 { 2006 2009 STUB_INIT_STACK_FRAME(stackFrame); … … 2018 2021 } 2019 2022 2020 EncodedJSValue JITStubs::cti_op_resolve_with_base(STUB_ARGS_DECLARATION)2023 DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_with_base) 2021 2024 { 2022 2025 STUB_INIT_STACK_FRAME(stackFrame); … … 2054 2057 } 2055 2058 2056 JSObject* JITStubs::cti_op_new_func_exp(STUB_ARGS_DECLARATION)2059 DEFINE_STUB_FUNCTION(JSObject*, op_new_func_exp) 2057 2060 { 2058 2061 STUB_INIT_STACK_FRAME(stackFrame); … … 2061 2064 } 2062 2065 2063 EncodedJSValue JITStubs::cti_op_mod(STUB_ARGS_DECLARATION)2066 DEFINE_STUB_FUNCTION(EncodedJSValue, op_mod) 2064 2067 { 2065 2068 STUB_INIT_STACK_FRAME(stackFrame); … … 2075 2078 } 2076 2079 2077 EncodedJSValue JITStubs::cti_op_less(STUB_ARGS_DECLARATION)2080 DEFINE_STUB_FUNCTION(EncodedJSValue, op_less) 2078 2081 { 2079 2082 STUB_INIT_STACK_FRAME(stackFrame); … … 2085 2088 } 2086 2089 2087 EncodedJSValue JITStubs::cti_op_neq(STUB_ARGS_DECLARATION)2090 DEFINE_STUB_FUNCTION(EncodedJSValue, op_neq) 2088 2091 { 2089 2092 STUB_INIT_STACK_FRAME(stackFrame); … … 2100 2103 } 2101 2104 2102 EncodedJSValue JITStubs::cti_op_post_dec(STUB_ARGS_DECLARATION)2105 DEFINE_STUB_FUNCTION(EncodedJSValue, op_post_dec) 2103 2106 { 2104 2107 STUB_INIT_STACK_FRAME(stackFrame); … … 2115 2118 } 2116 2119 2117 EncodedJSValue JITStubs::cti_op_urshift(STUB_ARGS_DECLARATION)2120 DEFINE_STUB_FUNCTION(EncodedJSValue, op_urshift) 2118 2121 { 2119 2122 STUB_INIT_STACK_FRAME(stackFrame); … … 2133 2136 } 2134 2137 2135 EncodedJSValue JITStubs::cti_op_bitxor(STUB_ARGS_DECLARATION)2138 DEFINE_STUB_FUNCTION(EncodedJSValue, op_bitxor) 2136 2139 { 2137 2140 STUB_INIT_STACK_FRAME(stackFrame); … … 2147 2150 } 2148 2151 2149 JSObject* JITStubs::cti_op_new_regexp(STUB_ARGS_DECLARATION)2152 DEFINE_STUB_FUNCTION(JSObject*, op_new_regexp) 2150 2153 { 2151 2154 STUB_INIT_STACK_FRAME(stackFrame); … … 2154 2157 } 2155 2158 2156 EncodedJSValue JITStubs::cti_op_bitor(STUB_ARGS_DECLARATION)2159 DEFINE_STUB_FUNCTION(EncodedJSValue, op_bitor) 2157 2160 { 2158 2161 STUB_INIT_STACK_FRAME(stackFrame); … … 2168 2171 } 2169 2172 2170 EncodedJSValue JITStubs::cti_op_call_eval(STUB_ARGS_DECLARATION)2173 DEFINE_STUB_FUNCTION(EncodedJSValue, op_call_eval) 2171 2174 { 2172 2175 STUB_INIT_STACK_FRAME(stackFrame); … … 2199 2202 } 2200 2203 2201 EncodedJSValue JITStubs::cti_op_throw(STUB_ARGS_DECLARATION)2204 DEFINE_STUB_FUNCTION(EncodedJSValue, op_throw) 2202 2205 { 2203 2206 STUB_INIT_STACK_FRAME(stackFrame); … … 2225 2228 } 2226 2229 2227 JSPropertyNameIterator* JITStubs::cti_op_get_pnames(STUB_ARGS_DECLARATION)2230 DEFINE_STUB_FUNCTION(JSPropertyNameIterator*, op_get_pnames) 2228 2231 { 2229 2232 STUB_INIT_STACK_FRAME(stackFrame); … … 2232 2235 } 2233 2236 2234 EncodedJSValue JITStubs::cti_op_next_pname(STUB_ARGS_DECLARATION)2237 DEFINE_STUB_FUNCTION(EncodedJSValue, op_next_pname) 2235 2238 { 2236 2239 STUB_INIT_STACK_FRAME(stackFrame); … … 2243 2246 } 2244 2247 2245 JSObject* JITStubs::cti_op_push_scope(STUB_ARGS_DECLARATION)2248 DEFINE_STUB_FUNCTION(JSObject*, op_push_scope) 2246 2249 { 2247 2250 STUB_INIT_STACK_FRAME(stackFrame); … … 2253 2256 } 2254 2257 2255 void JITStubs::cti_op_pop_scope(STUB_ARGS_DECLARATION)2258 DEFINE_STUB_FUNCTION(void, op_pop_scope) 2256 2259 { 2257 2260 STUB_INIT_STACK_FRAME(stackFrame); … … 2260 2263 } 2261 2264 2262 EncodedJSValue JITStubs::cti_op_typeof(STUB_ARGS_DECLARATION)2265 DEFINE_STUB_FUNCTION(EncodedJSValue, op_typeof) 2263 2266 { 2264 2267 STUB_INIT_STACK_FRAME(stackFrame); … … 2267 2270 } 2268 2271 2269 EncodedJSValue JITStubs::cti_op_is_undefined(STUB_ARGS_DECLARATION)2272 DEFINE_STUB_FUNCTION(EncodedJSValue, op_is_undefined) 2270 2273 { 2271 2274 STUB_INIT_STACK_FRAME(stackFrame); … … 2275 2278 } 2276 2279 2277 EncodedJSValue JITStubs::cti_op_is_boolean(STUB_ARGS_DECLARATION)2280 DEFINE_STUB_FUNCTION(EncodedJSValue, op_is_boolean) 2278 2281 { 2279 2282 STUB_INIT_STACK_FRAME(stackFrame); … … 2282 2285 } 2283 2286 2284 EncodedJSValue JITStubs::cti_op_is_number(STUB_ARGS_DECLARATION)2287 DEFINE_STUB_FUNCTION(EncodedJSValue, op_is_number) 2285 2288 { 2286 2289 STUB_INIT_STACK_FRAME(stackFrame); … … 2289 2292 } 2290 2293 2291 EncodedJSValue JITStubs::cti_op_is_string(STUB_ARGS_DECLARATION)2294 DEFINE_STUB_FUNCTION(EncodedJSValue, op_is_string) 2292 2295 { 2293 2296 STUB_INIT_STACK_FRAME(stackFrame); … … 2296 2299 } 2297 2300 2298 EncodedJSValue JITStubs::cti_op_is_object(STUB_ARGS_DECLARATION)2301 DEFINE_STUB_FUNCTION(EncodedJSValue, op_is_object) 2299 2302 { 2300 2303 STUB_INIT_STACK_FRAME(stackFrame); … … 2303 2306 } 2304 2307 2305 EncodedJSValue JITStubs::cti_op_is_function(STUB_ARGS_DECLARATION)2308 DEFINE_STUB_FUNCTION(EncodedJSValue, op_is_function) 2306 2309 { 2307 2310 STUB_INIT_STACK_FRAME(stackFrame); … … 2310 2313 } 2311 2314 2312 EncodedJSValue JITStubs::cti_op_stricteq(STUB_ARGS_DECLARATION)2315 DEFINE_STUB_FUNCTION(EncodedJSValue, op_stricteq) 2313 2316 { 2314 2317 STUB_INIT_STACK_FRAME(stackFrame); … … 2320 2323 } 2321 2324 2322 EncodedJSValue JITStubs::cti_op_to_primitive(STUB_ARGS_DECLARATION)2325 DEFINE_STUB_FUNCTION(EncodedJSValue, op_to_primitive) 2323 2326 { 2324 2327 STUB_INIT_STACK_FRAME(stackFrame); … … 2327 2330 } 2328 2331 2329 EncodedJSValue JITStubs::cti_op_strcat(STUB_ARGS_DECLARATION)2332 DEFINE_STUB_FUNCTION(EncodedJSValue, op_strcat) 2330 2333 { 2331 2334 STUB_INIT_STACK_FRAME(stackFrame); … … 2334 2337 } 2335 2338 2336 EncodedJSValue JITStubs::cti_op_nstricteq(STUB_ARGS_DECLARATION)2339 DEFINE_STUB_FUNCTION(EncodedJSValue, op_nstricteq) 2337 2340 { 2338 2341 STUB_INIT_STACK_FRAME(stackFrame); … … 2344 2347 } 2345 2348 2346 EncodedJSValue JITStubs::cti_op_to_jsnumber(STUB_ARGS_DECLARATION)2349 DEFINE_STUB_FUNCTION(EncodedJSValue, op_to_jsnumber) 2347 2350 { 2348 2351 STUB_INIT_STACK_FRAME(stackFrame); … … 2356 2359 } 2357 2360 2358 EncodedJSValue JITStubs::cti_op_in(STUB_ARGS_DECLARATION)2361 DEFINE_STUB_FUNCTION(EncodedJSValue, op_in) 2359 2362 { 2360 2363 STUB_INIT_STACK_FRAME(stackFrame); … … 2383 2386 } 2384 2387 2385 JSObject* JITStubs::cti_op_push_new_scope(STUB_ARGS_DECLARATION)2388 DEFINE_STUB_FUNCTION(JSObject*, op_push_new_scope) 2386 2389 { 2387 2390 STUB_INIT_STACK_FRAME(stackFrame); … … 2394 2397 } 2395 2398 2396 void JITStubs::cti_op_jmp_scopes(STUB_ARGS_DECLARATION)2399 DEFINE_STUB_FUNCTION(void, op_jmp_scopes) 2397 2400 { 2398 2401 STUB_INIT_STACK_FRAME(stackFrame); … … 2407 2410 } 2408 2411 2409 void JITStubs::cti_op_put_by_index(STUB_ARGS_DECLARATION)2412 DEFINE_STUB_FUNCTION(void, op_put_by_index) 2410 2413 { 2411 2414 STUB_INIT_STACK_FRAME(stackFrame); … … 2417 2420 } 2418 2421 2419 void* JITStubs::cti_op_switch_imm(STUB_ARGS_DECLARATION)2422 DEFINE_STUB_FUNCTION(void*, op_switch_imm) 2420 2423 { 2421 2424 STUB_INIT_STACK_FRAME(stackFrame); … … 2438 2441 } 2439 2442 2440 void* JITStubs::cti_op_switch_char(STUB_ARGS_DECLARATION)2443 DEFINE_STUB_FUNCTION(void*, op_switch_char) 2441 2444 { 2442 2445 STUB_INIT_STACK_FRAME(stackFrame); … … 2458 2461 } 2459 2462 2460 void* JITStubs::cti_op_switch_string(STUB_ARGS_DECLARATION)2463 DEFINE_STUB_FUNCTION(void*, op_switch_string) 2461 2464 { 2462 2465 STUB_INIT_STACK_FRAME(stackFrame); … … 2477 2480 } 2478 2481 2479 EncodedJSValue JITStubs::cti_op_del_by_val(STUB_ARGS_DECLARATION)2482 DEFINE_STUB_FUNCTION(EncodedJSValue, op_del_by_val) 2480 2483 { 2481 2484 STUB_INIT_STACK_FRAME(stackFrame); … … 2502 2505 } 2503 2506 2504 void JITStubs::cti_op_put_getter(STUB_ARGS_DECLARATION)2507 DEFINE_STUB_FUNCTION(void, op_put_getter) 2505 2508 { 2506 2509 STUB_INIT_STACK_FRAME(stackFrame); … … 2514 2517 } 2515 2518 2516 void JITStubs::cti_op_put_setter(STUB_ARGS_DECLARATION)2519 DEFINE_STUB_FUNCTION(void, op_put_setter) 2517 2520 { 2518 2521 STUB_INIT_STACK_FRAME(stackFrame); … … 2526 2529 } 2527 2530 2528 JSObject* JITStubs::cti_op_new_error(STUB_ARGS_DECLARATION)2531 DEFINE_STUB_FUNCTION(JSObject*, op_new_error) 2529 2532 { 2530 2533 STUB_INIT_STACK_FRAME(stackFrame); … … 2540 2543 } 2541 2544 2542 void JITStubs::cti_op_debug(STUB_ARGS_DECLARATION)2545 DEFINE_STUB_FUNCTION(void, op_debug) 2543 2546 { 2544 2547 STUB_INIT_STACK_FRAME(stackFrame); … … 2553 2556 } 2554 2557 2555 EncodedJSValue JITStubs::cti_vm_throw(STUB_ARGS_DECLARATION)2558 DEFINE_STUB_FUNCTION(EncodedJSValue, vm_throw) 2556 2559 { 2557 2560 STUB_INIT_STACK_FRAME(stackFrame); … … 2581 2584 } 2582 2585 2586 } // namespace JITStubs 2587 2583 2588 } // namespace JSC 2584 2589 -
trunk/JavaScriptCore/jit/JITStubs.h
r44076 r44344 168 168 void* code, RegisterFile*, CallFrame*, JSValue* exception, Profiler**, JSGlobalData*); 169 169 170 class JIT Stubs {170 class JITThunks { 171 171 public: 172 JITStubs(JSGlobalData*); 173 174 static void JIT_STUB cti_op_create_arguments(STUB_ARGS_DECLARATION); 175 static void JIT_STUB cti_op_create_arguments_no_params(STUB_ARGS_DECLARATION); 176 static void JIT_STUB cti_op_debug(STUB_ARGS_DECLARATION); 177 static void JIT_STUB cti_op_end(STUB_ARGS_DECLARATION); 178 static void JIT_STUB cti_op_jmp_scopes(STUB_ARGS_DECLARATION); 179 static void JIT_STUB cti_op_pop_scope(STUB_ARGS_DECLARATION); 180 static void JIT_STUB cti_op_profile_did_call(STUB_ARGS_DECLARATION); 181 static void JIT_STUB cti_op_profile_will_call(STUB_ARGS_DECLARATION); 182 static void JIT_STUB cti_op_put_by_id(STUB_ARGS_DECLARATION); 183 static void JIT_STUB cti_op_put_by_id_fail(STUB_ARGS_DECLARATION); 184 static void JIT_STUB cti_op_put_by_id_generic(STUB_ARGS_DECLARATION); 185 static void JIT_STUB cti_op_put_by_id_second(STUB_ARGS_DECLARATION); 186 static void JIT_STUB cti_op_put_by_index(STUB_ARGS_DECLARATION); 187 static void JIT_STUB cti_op_put_by_val(STUB_ARGS_DECLARATION); 188 static void JIT_STUB cti_op_put_by_val_array(STUB_ARGS_DECLARATION); 189 static void JIT_STUB cti_op_put_by_val_byte_array(STUB_ARGS_DECLARATION); 190 static void JIT_STUB cti_op_put_getter(STUB_ARGS_DECLARATION); 191 static void JIT_STUB cti_op_put_setter(STUB_ARGS_DECLARATION); 192 static void JIT_STUB cti_op_ret_scopeChain(STUB_ARGS_DECLARATION); 193 static void JIT_STUB cti_op_tear_off_activation(STUB_ARGS_DECLARATION); 194 static void JIT_STUB cti_op_tear_off_arguments(STUB_ARGS_DECLARATION); 195 static void JIT_STUB cti_register_file_check(STUB_ARGS_DECLARATION); 196 static int JIT_STUB cti_op_jless(STUB_ARGS_DECLARATION); 197 static int JIT_STUB cti_op_jlesseq(STUB_ARGS_DECLARATION); 198 static int JIT_STUB cti_op_jtrue(STUB_ARGS_DECLARATION); 199 static int JIT_STUB cti_op_load_varargs(STUB_ARGS_DECLARATION); 200 static int JIT_STUB cti_op_loop_if_less(STUB_ARGS_DECLARATION); 201 static int JIT_STUB cti_op_loop_if_lesseq(STUB_ARGS_DECLARATION); 202 static int JIT_STUB cti_op_loop_if_true(STUB_ARGS_DECLARATION); 203 static int JIT_STUB cti_timeout_check(STUB_ARGS_DECLARATION); 204 static void* JIT_STUB cti_op_call_JSFunction(STUB_ARGS_DECLARATION); 205 static void* JIT_STUB cti_op_switch_char(STUB_ARGS_DECLARATION); 206 static void* JIT_STUB cti_op_switch_imm(STUB_ARGS_DECLARATION); 207 static void* JIT_STUB cti_op_switch_string(STUB_ARGS_DECLARATION); 208 static void* JIT_STUB cti_vm_dontLazyLinkCall(STUB_ARGS_DECLARATION); 209 static void* JIT_STUB cti_vm_lazyLinkCall(STUB_ARGS_DECLARATION); 210 static JSObject* JIT_STUB cti_op_construct_JSConstruct(STUB_ARGS_DECLARATION); 211 static JSObject* JIT_STUB cti_op_convert_this(STUB_ARGS_DECLARATION); 212 static JSObject* JIT_STUB cti_op_new_array(STUB_ARGS_DECLARATION); 213 static JSObject* JIT_STUB cti_op_new_error(STUB_ARGS_DECLARATION); 214 static JSObject* JIT_STUB cti_op_new_func(STUB_ARGS_DECLARATION); 215 static JSObject* JIT_STUB cti_op_new_func_exp(STUB_ARGS_DECLARATION); 216 static JSObject* JIT_STUB cti_op_new_object(STUB_ARGS_DECLARATION); 217 static JSObject* JIT_STUB cti_op_new_regexp(STUB_ARGS_DECLARATION); 218 static JSObject* JIT_STUB cti_op_push_activation(STUB_ARGS_DECLARATION); 219 static JSObject* JIT_STUB cti_op_push_new_scope(STUB_ARGS_DECLARATION); 220 static JSObject* JIT_STUB cti_op_push_scope(STUB_ARGS_DECLARATION); 221 static JSPropertyNameIterator* JIT_STUB cti_op_get_pnames(STUB_ARGS_DECLARATION); 222 static EncodedJSValue JIT_STUB cti_op_add(STUB_ARGS_DECLARATION); 223 static EncodedJSValue JIT_STUB cti_op_bitand(STUB_ARGS_DECLARATION); 224 static EncodedJSValue JIT_STUB cti_op_bitnot(STUB_ARGS_DECLARATION); 225 static EncodedJSValue JIT_STUB cti_op_bitor(STUB_ARGS_DECLARATION); 226 static EncodedJSValue JIT_STUB cti_op_bitxor(STUB_ARGS_DECLARATION); 227 static EncodedJSValue JIT_STUB cti_op_call_NotJSFunction(STUB_ARGS_DECLARATION); 228 static EncodedJSValue JIT_STUB cti_op_call_eval(STUB_ARGS_DECLARATION); 229 static EncodedJSValue JIT_STUB cti_op_construct_NotJSConstruct(STUB_ARGS_DECLARATION); 230 static EncodedJSValue JIT_STUB cti_op_del_by_id(STUB_ARGS_DECLARATION); 231 static EncodedJSValue JIT_STUB cti_op_del_by_val(STUB_ARGS_DECLARATION); 232 static EncodedJSValue JIT_STUB cti_op_div(STUB_ARGS_DECLARATION); 233 static EncodedJSValue JIT_STUB cti_op_eq(STUB_ARGS_DECLARATION); 234 static EncodedJSValue JIT_STUB cti_op_get_by_id(STUB_ARGS_DECLARATION); 235 static EncodedJSValue JIT_STUB cti_op_get_by_id_method_check(STUB_ARGS_DECLARATION); 236 static EncodedJSValue JIT_STUB cti_op_get_by_id_method_check_second(STUB_ARGS_DECLARATION); 237 static EncodedJSValue JIT_STUB cti_op_get_by_id_array_fail(STUB_ARGS_DECLARATION); 238 static EncodedJSValue JIT_STUB cti_op_get_by_id_generic(STUB_ARGS_DECLARATION); 239 static EncodedJSValue JIT_STUB cti_op_get_by_id_proto_fail(STUB_ARGS_DECLARATION); 240 static EncodedJSValue JIT_STUB cti_op_get_by_id_proto_list(STUB_ARGS_DECLARATION); 241 static EncodedJSValue JIT_STUB cti_op_get_by_id_proto_list_full(STUB_ARGS_DECLARATION); 242 static EncodedJSValue JIT_STUB cti_op_get_by_id_second(STUB_ARGS_DECLARATION); 243 static EncodedJSValue JIT_STUB cti_op_get_by_id_self_fail(STUB_ARGS_DECLARATION); 244 static EncodedJSValue JIT_STUB cti_op_get_by_id_string_fail(STUB_ARGS_DECLARATION); 245 static EncodedJSValue JIT_STUB cti_op_get_by_val(STUB_ARGS_DECLARATION); 246 static EncodedJSValue JIT_STUB cti_op_get_by_val_byte_array(STUB_ARGS_DECLARATION); 247 static EncodedJSValue JIT_STUB cti_op_get_by_val_string(STUB_ARGS_DECLARATION); 248 static EncodedJSValue JIT_STUB cti_op_in(STUB_ARGS_DECLARATION); 249 static EncodedJSValue JIT_STUB cti_op_instanceof(STUB_ARGS_DECLARATION); 250 static EncodedJSValue JIT_STUB cti_op_is_boolean(STUB_ARGS_DECLARATION); 251 static EncodedJSValue JIT_STUB cti_op_is_function(STUB_ARGS_DECLARATION); 252 static EncodedJSValue JIT_STUB cti_op_is_number(STUB_ARGS_DECLARATION); 253 static EncodedJSValue JIT_STUB cti_op_is_object(STUB_ARGS_DECLARATION); 254 static EncodedJSValue JIT_STUB cti_op_is_string(STUB_ARGS_DECLARATION); 255 static EncodedJSValue JIT_STUB cti_op_is_undefined(STUB_ARGS_DECLARATION); 256 static EncodedJSValue JIT_STUB cti_op_less(STUB_ARGS_DECLARATION); 257 static EncodedJSValue JIT_STUB cti_op_lesseq(STUB_ARGS_DECLARATION); 258 static EncodedJSValue JIT_STUB cti_op_lshift(STUB_ARGS_DECLARATION); 259 static EncodedJSValue JIT_STUB cti_op_mod(STUB_ARGS_DECLARATION); 260 static EncodedJSValue JIT_STUB cti_op_mul(STUB_ARGS_DECLARATION); 261 static EncodedJSValue JIT_STUB cti_op_negate(STUB_ARGS_DECLARATION); 262 static EncodedJSValue JIT_STUB cti_op_neq(STUB_ARGS_DECLARATION); 263 static EncodedJSValue JIT_STUB cti_op_next_pname(STUB_ARGS_DECLARATION); 264 static EncodedJSValue JIT_STUB cti_op_not(STUB_ARGS_DECLARATION); 265 static EncodedJSValue JIT_STUB cti_op_nstricteq(STUB_ARGS_DECLARATION); 266 static EncodedJSValue JIT_STUB cti_op_pre_dec(STUB_ARGS_DECLARATION); 267 static EncodedJSValue JIT_STUB cti_op_pre_inc(STUB_ARGS_DECLARATION); 268 static EncodedJSValue JIT_STUB cti_op_resolve(STUB_ARGS_DECLARATION); 269 static EncodedJSValue JIT_STUB cti_op_resolve_base(STUB_ARGS_DECLARATION); 270 static EncodedJSValue JIT_STUB cti_op_resolve_global(STUB_ARGS_DECLARATION); 271 static EncodedJSValue JIT_STUB cti_op_resolve_skip(STUB_ARGS_DECLARATION); 272 static EncodedJSValue JIT_STUB cti_op_rshift(STUB_ARGS_DECLARATION); 273 static EncodedJSValue JIT_STUB cti_op_strcat(STUB_ARGS_DECLARATION); 274 static EncodedJSValue JIT_STUB cti_op_stricteq(STUB_ARGS_DECLARATION); 275 static EncodedJSValue JIT_STUB cti_op_sub(STUB_ARGS_DECLARATION); 276 static EncodedJSValue JIT_STUB cti_op_throw(STUB_ARGS_DECLARATION); 277 static EncodedJSValue JIT_STUB cti_op_to_jsnumber(STUB_ARGS_DECLARATION); 278 static EncodedJSValue JIT_STUB cti_op_to_primitive(STUB_ARGS_DECLARATION); 279 static EncodedJSValue JIT_STUB cti_op_typeof(STUB_ARGS_DECLARATION); 280 static EncodedJSValue JIT_STUB cti_op_urshift(STUB_ARGS_DECLARATION); 281 static EncodedJSValue JIT_STUB cti_vm_throw(STUB_ARGS_DECLARATION); 282 static EncodedJSValue JIT_STUB cti_op_post_dec(STUB_ARGS_DECLARATION); 283 static EncodedJSValue JIT_STUB cti_op_post_inc(STUB_ARGS_DECLARATION); 284 static EncodedJSValue JIT_STUB cti_op_resolve_func(STUB_ARGS_DECLARATION); 285 static EncodedJSValue JIT_STUB cti_op_resolve_with_base(STUB_ARGS_DECLARATION); 286 static VoidPtrPair JIT_STUB cti_op_call_arityCheck(STUB_ARGS_DECLARATION); 172 JITThunks(JSGlobalData*); 287 173 288 174 static void tryCacheGetByID(CallFrame*, CodeBlock*, void* returnAddress, JSValue baseValue, const Identifier& propertyName, const PropertySlot&); … … 307 193 }; 308 194 195 namespace JITStubs { extern "C" { 196 197 void JIT_STUB cti_op_create_arguments(STUB_ARGS_DECLARATION); 198 void JIT_STUB cti_op_create_arguments_no_params(STUB_ARGS_DECLARATION); 199 void JIT_STUB cti_op_debug(STUB_ARGS_DECLARATION); 200 void JIT_STUB cti_op_end(STUB_ARGS_DECLARATION); 201 void JIT_STUB cti_op_jmp_scopes(STUB_ARGS_DECLARATION); 202 void JIT_STUB cti_op_pop_scope(STUB_ARGS_DECLARATION); 203 void JIT_STUB cti_op_profile_did_call(STUB_ARGS_DECLARATION); 204 void JIT_STUB cti_op_profile_will_call(STUB_ARGS_DECLARATION); 205 void JIT_STUB cti_op_put_by_id(STUB_ARGS_DECLARATION); 206 void JIT_STUB cti_op_put_by_id_fail(STUB_ARGS_DECLARATION); 207 void JIT_STUB cti_op_put_by_id_generic(STUB_ARGS_DECLARATION); 208 void JIT_STUB cti_op_put_by_id_second(STUB_ARGS_DECLARATION); 209 void JIT_STUB cti_op_put_by_index(STUB_ARGS_DECLARATION); 210 void JIT_STUB cti_op_put_by_val(STUB_ARGS_DECLARATION); 211 void JIT_STUB cti_op_put_by_val_array(STUB_ARGS_DECLARATION); 212 void JIT_STUB cti_op_put_by_val_byte_array(STUB_ARGS_DECLARATION); 213 void JIT_STUB cti_op_put_getter(STUB_ARGS_DECLARATION); 214 void JIT_STUB cti_op_put_setter(STUB_ARGS_DECLARATION); 215 void JIT_STUB cti_op_ret_scopeChain(STUB_ARGS_DECLARATION); 216 void JIT_STUB cti_op_tear_off_activation(STUB_ARGS_DECLARATION); 217 void JIT_STUB cti_op_tear_off_arguments(STUB_ARGS_DECLARATION); 218 void JIT_STUB cti_register_file_check(STUB_ARGS_DECLARATION); 219 int JIT_STUB cti_op_jless(STUB_ARGS_DECLARATION); 220 int JIT_STUB cti_op_jlesseq(STUB_ARGS_DECLARATION); 221 int JIT_STUB cti_op_jtrue(STUB_ARGS_DECLARATION); 222 int JIT_STUB cti_op_load_varargs(STUB_ARGS_DECLARATION); 223 int JIT_STUB cti_op_loop_if_less(STUB_ARGS_DECLARATION); 224 int JIT_STUB cti_op_loop_if_lesseq(STUB_ARGS_DECLARATION); 225 int JIT_STUB cti_op_loop_if_true(STUB_ARGS_DECLARATION); 226 int JIT_STUB cti_timeout_check(STUB_ARGS_DECLARATION); 227 void* JIT_STUB cti_op_call_JSFunction(STUB_ARGS_DECLARATION); 228 void* JIT_STUB cti_op_switch_char(STUB_ARGS_DECLARATION); 229 void* JIT_STUB cti_op_switch_imm(STUB_ARGS_DECLARATION); 230 void* JIT_STUB cti_op_switch_string(STUB_ARGS_DECLARATION); 231 void* JIT_STUB cti_vm_dontLazyLinkCall(STUB_ARGS_DECLARATION); 232 void* JIT_STUB cti_vm_lazyLinkCall(STUB_ARGS_DECLARATION); 233 JSObject* JIT_STUB cti_op_construct_JSConstruct(STUB_ARGS_DECLARATION); 234 JSObject* JIT_STUB cti_op_convert_this(STUB_ARGS_DECLARATION); 235 JSObject* JIT_STUB cti_op_new_array(STUB_ARGS_DECLARATION); 236 JSObject* JIT_STUB cti_op_new_error(STUB_ARGS_DECLARATION); 237 JSObject* JIT_STUB cti_op_new_func(STUB_ARGS_DECLARATION); 238 JSObject* JIT_STUB cti_op_new_func_exp(STUB_ARGS_DECLARATION); 239 JSObject* JIT_STUB cti_op_new_object(STUB_ARGS_DECLARATION); 240 JSObject* JIT_STUB cti_op_new_regexp(STUB_ARGS_DECLARATION); 241 JSObject* JIT_STUB cti_op_push_activation(STUB_ARGS_DECLARATION); 242 JSObject* JIT_STUB cti_op_push_new_scope(STUB_ARGS_DECLARATION); 243 JSObject* JIT_STUB cti_op_push_scope(STUB_ARGS_DECLARATION); 244 JSPropertyNameIterator* JIT_STUB cti_op_get_pnames(STUB_ARGS_DECLARATION); 245 EncodedJSValue JIT_STUB cti_op_add(STUB_ARGS_DECLARATION); 246 EncodedJSValue JIT_STUB cti_op_bitand(STUB_ARGS_DECLARATION); 247 EncodedJSValue JIT_STUB cti_op_bitnot(STUB_ARGS_DECLARATION); 248 EncodedJSValue JIT_STUB cti_op_bitor(STUB_ARGS_DECLARATION); 249 EncodedJSValue JIT_STUB cti_op_bitxor(STUB_ARGS_DECLARATION); 250 EncodedJSValue JIT_STUB cti_op_call_NotJSFunction(STUB_ARGS_DECLARATION); 251 EncodedJSValue JIT_STUB cti_op_call_eval(STUB_ARGS_DECLARATION); 252 EncodedJSValue JIT_STUB cti_op_construct_NotJSConstruct(STUB_ARGS_DECLARATION); 253 EncodedJSValue JIT_STUB cti_op_del_by_id(STUB_ARGS_DECLARATION); 254 EncodedJSValue JIT_STUB cti_op_del_by_val(STUB_ARGS_DECLARATION); 255 EncodedJSValue JIT_STUB cti_op_div(STUB_ARGS_DECLARATION); 256 EncodedJSValue JIT_STUB cti_op_eq(STUB_ARGS_DECLARATION); 257 EncodedJSValue JIT_STUB cti_op_get_by_id(STUB_ARGS_DECLARATION); 258 EncodedJSValue JIT_STUB cti_op_get_by_id_method_check(STUB_ARGS_DECLARATION); 259 EncodedJSValue JIT_STUB cti_op_get_by_id_method_check_second(STUB_ARGS_DECLARATION); 260 EncodedJSValue JIT_STUB cti_op_get_by_id_array_fail(STUB_ARGS_DECLARATION); 261 EncodedJSValue JIT_STUB cti_op_get_by_id_generic(STUB_ARGS_DECLARATION); 262 EncodedJSValue JIT_STUB cti_op_get_by_id_proto_fail(STUB_ARGS_DECLARATION); 263 EncodedJSValue JIT_STUB cti_op_get_by_id_proto_list(STUB_ARGS_DECLARATION); 264 EncodedJSValue JIT_STUB cti_op_get_by_id_proto_list_full(STUB_ARGS_DECLARATION); 265 EncodedJSValue JIT_STUB cti_op_get_by_id_second(STUB_ARGS_DECLARATION); 266 EncodedJSValue JIT_STUB cti_op_get_by_id_self_fail(STUB_ARGS_DECLARATION); 267 EncodedJSValue JIT_STUB cti_op_get_by_id_string_fail(STUB_ARGS_DECLARATION); 268 EncodedJSValue JIT_STUB cti_op_get_by_val(STUB_ARGS_DECLARATION); 269 EncodedJSValue JIT_STUB cti_op_get_by_val_byte_array(STUB_ARGS_DECLARATION); 270 EncodedJSValue JIT_STUB cti_op_get_by_val_string(STUB_ARGS_DECLARATION); 271 EncodedJSValue JIT_STUB cti_op_in(STUB_ARGS_DECLARATION); 272 EncodedJSValue JIT_STUB cti_op_instanceof(STUB_ARGS_DECLARATION); 273 EncodedJSValue JIT_STUB cti_op_is_boolean(STUB_ARGS_DECLARATION); 274 EncodedJSValue JIT_STUB cti_op_is_function(STUB_ARGS_DECLARATION); 275 EncodedJSValue JIT_STUB cti_op_is_number(STUB_ARGS_DECLARATION); 276 EncodedJSValue JIT_STUB cti_op_is_object(STUB_ARGS_DECLARATION); 277 EncodedJSValue JIT_STUB cti_op_is_string(STUB_ARGS_DECLARATION); 278 EncodedJSValue JIT_STUB cti_op_is_undefined(STUB_ARGS_DECLARATION); 279 EncodedJSValue JIT_STUB cti_op_less(STUB_ARGS_DECLARATION); 280 EncodedJSValue JIT_STUB cti_op_lesseq(STUB_ARGS_DECLARATION); 281 EncodedJSValue JIT_STUB cti_op_lshift(STUB_ARGS_DECLARATION); 282 EncodedJSValue JIT_STUB cti_op_mod(STUB_ARGS_DECLARATION); 283 EncodedJSValue JIT_STUB cti_op_mul(STUB_ARGS_DECLARATION); 284 EncodedJSValue JIT_STUB cti_op_negate(STUB_ARGS_DECLARATION); 285 EncodedJSValue JIT_STUB cti_op_neq(STUB_ARGS_DECLARATION); 286 EncodedJSValue JIT_STUB cti_op_next_pname(STUB_ARGS_DECLARATION); 287 EncodedJSValue JIT_STUB cti_op_not(STUB_ARGS_DECLARATION); 288 EncodedJSValue JIT_STUB cti_op_nstricteq(STUB_ARGS_DECLARATION); 289 EncodedJSValue JIT_STUB cti_op_pre_dec(STUB_ARGS_DECLARATION); 290 EncodedJSValue JIT_STUB cti_op_pre_inc(STUB_ARGS_DECLARATION); 291 EncodedJSValue JIT_STUB cti_op_resolve(STUB_ARGS_DECLARATION); 292 EncodedJSValue JIT_STUB cti_op_resolve_base(STUB_ARGS_DECLARATION); 293 EncodedJSValue JIT_STUB cti_op_resolve_global(STUB_ARGS_DECLARATION); 294 EncodedJSValue JIT_STUB cti_op_resolve_skip(STUB_ARGS_DECLARATION); 295 EncodedJSValue JIT_STUB cti_op_rshift(STUB_ARGS_DECLARATION); 296 EncodedJSValue JIT_STUB cti_op_strcat(STUB_ARGS_DECLARATION); 297 EncodedJSValue JIT_STUB cti_op_stricteq(STUB_ARGS_DECLARATION); 298 EncodedJSValue JIT_STUB cti_op_sub(STUB_ARGS_DECLARATION); 299 EncodedJSValue JIT_STUB cti_op_throw(STUB_ARGS_DECLARATION); 300 EncodedJSValue JIT_STUB cti_op_to_jsnumber(STUB_ARGS_DECLARATION); 301 EncodedJSValue JIT_STUB cti_op_to_primitive(STUB_ARGS_DECLARATION); 302 EncodedJSValue JIT_STUB cti_op_typeof(STUB_ARGS_DECLARATION); 303 EncodedJSValue JIT_STUB cti_op_urshift(STUB_ARGS_DECLARATION); 304 EncodedJSValue JIT_STUB cti_vm_throw(STUB_ARGS_DECLARATION); 305 EncodedJSValue JIT_STUB cti_op_post_dec(STUB_ARGS_DECLARATION); 306 EncodedJSValue JIT_STUB cti_op_post_inc(STUB_ARGS_DECLARATION); 307 EncodedJSValue JIT_STUB cti_op_resolve_func(STUB_ARGS_DECLARATION); 308 EncodedJSValue JIT_STUB cti_op_resolve_with_base(STUB_ARGS_DECLARATION); 309 VoidPtrPair JIT_STUB cti_op_call_arityCheck(STUB_ARGS_DECLARATION); 310 311 }; } // extern "C" namespace JITStubs 312 309 313 } // namespace JSC 310 314 -
trunk/JavaScriptCore/runtime/JSFunction.h
r43661 r44344 40 40 class JSFunction : public InternalFunction { 41 41 friend class JIT; 42 friend class JITStubs;43 42 friend class VPtrSet; 44 43 … … 88 87 return *reinterpret_cast<NativeFunction*>(m_data); 89 88 } 90 private:91 virtual const ClassInfo* classInfo() const { return &info; }92 89 93 90 virtual ConstructType getConstructData(ConstructData&); 94 91 virtual CallType getCallData(CallData&); 92 93 private: 94 virtual const ClassInfo* classInfo() const { return &info; } 95 95 96 96 static JSValue argumentsGetter(ExecState*, const Identifier&, const PropertySlot&); -
trunk/JavaScriptCore/runtime/JSGlobalData.h
r44224 r44344 117 117 Interpreter* interpreter; 118 118 #if ENABLE(JIT) 119 JIT Stubs jitStubs;119 JITThunks jitStubs; 120 120 FunctionBodyNode* nativeFunctionThunk() 121 121 {
Note:
See TracChangeset
for help on using the changeset viewer.