Changeset 39380 in webkit for trunk/JavaScriptCore/interpreter/Interpreter.cpp
- Timestamp:
- Dec 18, 2008, 2:14:53 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/interpreter/Interpreter.cpp
r39377 r39380 4192 4192 #endif 4193 4193 4194 #if USE( CTI_ARGUMENT)4195 #define SETUP_V L_ARGS4196 #else 4197 #define SETUP_V L_ARGS va_list vl_args; va_start(vl_args, args)4194 #if USE(JIT_STUB_ARGUMENT_VA_LIST) 4195 #define SETUP_VA_LISTL_ARGS va_list vl_args; va_start(vl_args, args) 4196 #else // JIT_STUB_ARGUMENT_REGISTER or JIT_STUB_ARGUMENT_STACK 4197 #define SETUP_VA_LISTL_ARGS 4198 4198 #endif 4199 4199 … … 4227 4227 }; 4228 4228 4229 #define CTI_STACK_HACK() SETUP_VL_ARGS; StackHack stackHack(&CTI_RETURN_ADDRESS_SLOT)4230 #define CTI_SET_RETURN_ADDRESS(address) stackHack.savedReturnAddress = address4231 #define CTI_RETURN_ADDRESS stackHack.savedReturnAddress4229 #define BEGIN_STUB_FUNCTION() SETUP_VA_LISTL_ARGS; StackHack stackHack(&STUB_RETURN_ADDRESS_SLOT) 4230 #define STUB_SET_RETURN_ADDRESS(address) stackHack.savedReturnAddress = address 4231 #define STUB_RETURN_ADDRESS stackHack.savedReturnAddress 4232 4232 4233 4233 #else 4234 4234 4235 #define CTI_STACK_HACK() SETUP_VL_ARGS4236 #define CTI_SET_RETURN_ADDRESS(address) ctiSetReturnAddress(&CTI_RETURN_ADDRESS_SLOT, address);4237 #define CTI_RETURN_ADDRESS CTI_RETURN_ADDRESS_SLOT4235 #define BEGIN_STUB_FUNCTION() SETUP_VA_LISTL_ARGS 4236 #define STUB_SET_RETURN_ADDRESS(address) ctiSetReturnAddress(&STUB_RETURN_ADDRESS_SLOT, address); 4237 #define STUB_RETURN_ADDRESS STUB_RETURN_ADDRESS_SLOT 4238 4238 4239 4239 #endif … … 4267 4267 } while (0) 4268 4268 #define VM_THROW_EXCEPTION_AT_END() \ 4269 returnToThrowTrampoline(ARG_globalData, CTI_RETURN_ADDRESS, CTI_RETURN_ADDRESS)4269 returnToThrowTrampoline(ARG_globalData, STUB_RETURN_ADDRESS, STUB_RETURN_ADDRESS) 4270 4270 4271 4271 #define CHECK_FOR_EXCEPTION() \ … … 4287 4287 } while (0) 4288 4288 4289 JSObject* Interpreter::cti_op_convert_this( CTI_ARGS)4290 { 4291 CTI_STACK_HACK();4289 JSObject* Interpreter::cti_op_convert_this(STUB_ARGS) 4290 { 4291 BEGIN_STUB_FUNCTION(); 4292 4292 4293 4293 JSValue* v1 = ARG_src1; … … 4299 4299 } 4300 4300 4301 void Interpreter::cti_op_end( CTI_ARGS)4302 { 4303 CTI_STACK_HACK();4301 void Interpreter::cti_op_end(STUB_ARGS) 4302 { 4303 BEGIN_STUB_FUNCTION(); 4304 4304 4305 4305 ScopeChainNode* scopeChain = ARG_callFrame->scopeChain(); … … 4308 4308 } 4309 4309 4310 JSValue* Interpreter::cti_op_add( CTI_ARGS)4311 { 4312 CTI_STACK_HACK();4310 JSValue* Interpreter::cti_op_add(STUB_ARGS) 4311 { 4312 BEGIN_STUB_FUNCTION(); 4313 4313 4314 4314 JSValue* v1 = ARG_src1; … … 4353 4353 } 4354 4354 4355 JSValue* Interpreter::cti_op_pre_inc( CTI_ARGS)4356 { 4357 CTI_STACK_HACK();4355 JSValue* Interpreter::cti_op_pre_inc(STUB_ARGS) 4356 { 4357 BEGIN_STUB_FUNCTION(); 4358 4358 4359 4359 JSValue* v = ARG_src1; … … 4365 4365 } 4366 4366 4367 int Interpreter::cti_timeout_check( CTI_ARGS)4368 { 4369 CTI_STACK_HACK();4367 int Interpreter::cti_timeout_check(STUB_ARGS) 4368 { 4369 BEGIN_STUB_FUNCTION(); 4370 4370 Interpreter* interpreter = ARG_globalData->interpreter; 4371 4371 … … 4378 4378 } 4379 4379 4380 void Interpreter::cti_register_file_check( CTI_ARGS)4381 { 4382 CTI_STACK_HACK();4380 void Interpreter::cti_register_file_check(STUB_ARGS) 4381 { 4382 BEGIN_STUB_FUNCTION(); 4383 4383 4384 4384 if (LIKELY(ARG_registerFile->grow(ARG_callFrame + ARG_callFrame->codeBlock()->m_numCalleeRegisters))) … … 4389 4389 CallFrame* oldCallFrame = ARG_callFrame->callerFrame(); 4390 4390 ARG_setCallFrame(oldCallFrame); 4391 throwStackOverflowError(oldCallFrame, ARG_globalData, oldCallFrame->returnPC(), CTI_RETURN_ADDRESS);4392 } 4393 4394 int Interpreter::cti_op_loop_if_less( CTI_ARGS)4395 { 4396 CTI_STACK_HACK();4391 throwStackOverflowError(oldCallFrame, ARG_globalData, oldCallFrame->returnPC(), STUB_RETURN_ADDRESS); 4392 } 4393 4394 int Interpreter::cti_op_loop_if_less(STUB_ARGS) 4395 { 4396 BEGIN_STUB_FUNCTION(); 4397 4397 4398 4398 JSValue* src1 = ARG_src1; … … 4405 4405 } 4406 4406 4407 int Interpreter::cti_op_loop_if_lesseq( CTI_ARGS)4408 { 4409 CTI_STACK_HACK();4407 int Interpreter::cti_op_loop_if_lesseq(STUB_ARGS) 4408 { 4409 BEGIN_STUB_FUNCTION(); 4410 4410 4411 4411 JSValue* src1 = ARG_src1; … … 4418 4418 } 4419 4419 4420 JSObject* Interpreter::cti_op_new_object( CTI_ARGS)4421 { 4422 CTI_STACK_HACK();4420 JSObject* Interpreter::cti_op_new_object(STUB_ARGS) 4421 { 4422 BEGIN_STUB_FUNCTION(); 4423 4423 4424 4424 return constructEmptyObject(ARG_callFrame); 4425 4425 } 4426 4426 4427 void Interpreter::cti_op_put_by_id_generic( CTI_ARGS)4428 { 4429 CTI_STACK_HACK();4427 void Interpreter::cti_op_put_by_id_generic(STUB_ARGS) 4428 { 4429 BEGIN_STUB_FUNCTION(); 4430 4430 4431 4431 PutPropertySlot slot; … … 4434 4434 } 4435 4435 4436 JSValue* Interpreter::cti_op_get_by_id_generic( CTI_ARGS)4437 { 4438 CTI_STACK_HACK();4436 JSValue* Interpreter::cti_op_get_by_id_generic(STUB_ARGS) 4437 { 4438 BEGIN_STUB_FUNCTION(); 4439 4439 4440 4440 CallFrame* callFrame = ARG_callFrame; … … 4451 4451 #if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS) 4452 4452 4453 void Interpreter::cti_op_put_by_id( CTI_ARGS)4454 { 4455 CTI_STACK_HACK();4453 void Interpreter::cti_op_put_by_id(STUB_ARGS) 4454 { 4455 BEGIN_STUB_FUNCTION(); 4456 4456 4457 4457 CallFrame* callFrame = ARG_callFrame; … … 4461 4461 ARG_src1->put(callFrame, ident, ARG_src3, slot); 4462 4462 4463 ctiRepatchCallByReturnAddress( CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_put_by_id_second));4463 ctiRepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_put_by_id_second)); 4464 4464 4465 4465 CHECK_FOR_EXCEPTION_AT_END(); 4466 4466 } 4467 4467 4468 void Interpreter::cti_op_put_by_id_second( CTI_ARGS)4469 { 4470 CTI_STACK_HACK();4468 void Interpreter::cti_op_put_by_id_second(STUB_ARGS) 4469 { 4470 BEGIN_STUB_FUNCTION(); 4471 4471 4472 4472 PutPropertySlot slot; 4473 4473 ARG_src1->put(ARG_callFrame, *ARG_id2, ARG_src3, slot); 4474 ARG_globalData->interpreter->tryCTICachePutByID(ARG_callFrame, ARG_callFrame->codeBlock(), CTI_RETURN_ADDRESS, ARG_src1, slot);4474 ARG_globalData->interpreter->tryCTICachePutByID(ARG_callFrame, ARG_callFrame->codeBlock(), STUB_RETURN_ADDRESS, ARG_src1, slot); 4475 4475 CHECK_FOR_EXCEPTION_AT_END(); 4476 4476 } 4477 4477 4478 void Interpreter::cti_op_put_by_id_fail( CTI_ARGS)4479 { 4480 CTI_STACK_HACK();4478 void Interpreter::cti_op_put_by_id_fail(STUB_ARGS) 4479 { 4480 BEGIN_STUB_FUNCTION(); 4481 4481 4482 4482 CallFrame* callFrame = ARG_callFrame; … … 4489 4489 } 4490 4490 4491 JSValue* Interpreter::cti_op_get_by_id( CTI_ARGS)4492 { 4493 CTI_STACK_HACK();4491 JSValue* Interpreter::cti_op_get_by_id(STUB_ARGS) 4492 { 4493 BEGIN_STUB_FUNCTION(); 4494 4494 4495 4495 CallFrame* callFrame = ARG_callFrame; … … 4500 4500 JSValue* result = baseValue->get(callFrame, ident, slot); 4501 4501 4502 ctiRepatchCallByReturnAddress( CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_second));4502 ctiRepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_second)); 4503 4503 4504 4504 CHECK_FOR_EXCEPTION_AT_END(); … … 4506 4506 } 4507 4507 4508 JSValue* Interpreter::cti_op_get_by_id_second( CTI_ARGS)4509 { 4510 CTI_STACK_HACK();4508 JSValue* Interpreter::cti_op_get_by_id_second(STUB_ARGS) 4509 { 4510 BEGIN_STUB_FUNCTION(); 4511 4511 4512 4512 CallFrame* callFrame = ARG_callFrame; … … 4517 4517 JSValue* result = baseValue->get(callFrame, ident, slot); 4518 4518 4519 ARG_globalData->interpreter->tryCTICacheGetByID(callFrame, callFrame->codeBlock(), CTI_RETURN_ADDRESS, baseValue, ident, slot);4519 ARG_globalData->interpreter->tryCTICacheGetByID(callFrame, callFrame->codeBlock(), STUB_RETURN_ADDRESS, baseValue, ident, slot); 4520 4520 4521 4521 CHECK_FOR_EXCEPTION_AT_END(); … … 4523 4523 } 4524 4524 4525 JSValue* Interpreter::cti_op_get_by_id_self_fail( CTI_ARGS)4526 { 4527 CTI_STACK_HACK();4525 JSValue* Interpreter::cti_op_get_by_id_self_fail(STUB_ARGS) 4526 { 4527 BEGIN_STUB_FUNCTION(); 4528 4528 4529 4529 CallFrame* callFrame = ARG_callFrame; … … 4542 4542 4543 4543 CodeBlock* codeBlock = callFrame->codeBlock(); 4544 StructureStubInfo* stubInfo = &codeBlock->getStubInfo( CTI_RETURN_ADDRESS);4544 StructureStubInfo* stubInfo = &codeBlock->getStubInfo(STUB_RETURN_ADDRESS); 4545 4545 4546 4546 ASSERT(slot.slotBase()->isObject()); … … 4562 4562 4563 4563 if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1)) 4564 ctiRepatchCallByReturnAddress( CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_generic));4564 ctiRepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_generic)); 4565 4565 } else { 4566 ctiRepatchCallByReturnAddress( CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_generic));4566 ctiRepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_generic)); 4567 4567 } 4568 4568 return result; … … 4598 4598 } 4599 4599 4600 JSValue* Interpreter::cti_op_get_by_id_proto_list( CTI_ARGS)4601 { 4602 CTI_STACK_HACK();4600 JSValue* Interpreter::cti_op_get_by_id_proto_list(STUB_ARGS) 4601 { 4602 BEGIN_STUB_FUNCTION(); 4603 4603 4604 4604 CallFrame* callFrame = ARG_callFrame; … … 4611 4611 4612 4612 if (JSImmediate::isImmediate(baseValue) || !slot.isCacheable() || asCell(baseValue)->structure()->isDictionary()) { 4613 ctiRepatchCallByReturnAddress( CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail));4613 ctiRepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail)); 4614 4614 return result; 4615 4615 } … … 4617 4617 Structure* structure = asCell(baseValue)->structure(); 4618 4618 CodeBlock* codeBlock = callFrame->codeBlock(); 4619 StructureStubInfo* stubInfo = &codeBlock->getStubInfo( CTI_RETURN_ADDRESS);4619 StructureStubInfo* stubInfo = &codeBlock->getStubInfo(STUB_RETURN_ADDRESS); 4620 4620 4621 4621 ASSERT(slot.slotBase()->isObject()); … … 4623 4623 4624 4624 if (slot.slotBase() == baseValue) 4625 ctiRepatchCallByReturnAddress( CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail));4625 ctiRepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail)); 4626 4626 else if (slot.slotBase() == asCell(baseValue)->structure()->prototypeForLookup(callFrame)) { 4627 4627 // Since we're accessing a prototype in a loop, it's a good bet that it … … 4639 4639 4640 4640 if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1)) 4641 ctiRepatchCallByReturnAddress( CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_list_full));4641 ctiRepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_list_full)); 4642 4642 } else if (size_t count = countPrototypeChainEntriesAndCheckForProxies(callFrame, baseValue, slot)) { 4643 4643 StructureChain* chain = structure->cachedPrototypeChain(); … … 4652 4652 4653 4653 if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1)) 4654 ctiRepatchCallByReturnAddress( CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_list_full));4654 ctiRepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_list_full)); 4655 4655 } else 4656 ctiRepatchCallByReturnAddress( CTI_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail));4656 ctiRepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail)); 4657 4657 4658 4658 return result; 4659 4659 } 4660 4660 4661 JSValue* Interpreter::cti_op_get_by_id_proto_list_full( CTI_ARGS)4662 { 4663 CTI_STACK_HACK();4661 JSValue* Interpreter::cti_op_get_by_id_proto_list_full(STUB_ARGS) 4662 { 4663 BEGIN_STUB_FUNCTION(); 4664 4664 4665 4665 JSValue* baseValue = ARG_src1; … … 4671 4671 } 4672 4672 4673 JSValue* Interpreter::cti_op_get_by_id_proto_fail( CTI_ARGS)4674 { 4675 CTI_STACK_HACK();4673 JSValue* Interpreter::cti_op_get_by_id_proto_fail(STUB_ARGS) 4674 { 4675 BEGIN_STUB_FUNCTION(); 4676 4676 4677 4677 JSValue* baseValue = ARG_src1; … … 4683 4683 } 4684 4684 4685 JSValue* Interpreter::cti_op_get_by_id_array_fail( CTI_ARGS)4686 { 4687 CTI_STACK_HACK();4685 JSValue* Interpreter::cti_op_get_by_id_array_fail(STUB_ARGS) 4686 { 4687 BEGIN_STUB_FUNCTION(); 4688 4688 4689 4689 JSValue* baseValue = ARG_src1; … … 4695 4695 } 4696 4696 4697 JSValue* Interpreter::cti_op_get_by_id_string_fail( CTI_ARGS)4698 { 4699 CTI_STACK_HACK();4697 JSValue* Interpreter::cti_op_get_by_id_string_fail(STUB_ARGS) 4698 { 4699 BEGIN_STUB_FUNCTION(); 4700 4700 4701 4701 JSValue* baseValue = ARG_src1; … … 4709 4709 #endif 4710 4710 4711 JSValue* Interpreter::cti_op_instanceof( CTI_ARGS)4712 { 4713 CTI_STACK_HACK();4711 JSValue* Interpreter::cti_op_instanceof(STUB_ARGS) 4712 { 4713 BEGIN_STUB_FUNCTION(); 4714 4714 4715 4715 CallFrame* callFrame = ARG_callFrame; … … 4726 4726 CallFrame* callFrame = ARG_callFrame; 4727 4727 CodeBlock* codeBlock = callFrame->codeBlock(); 4728 unsigned vPCIndex = codeBlock->getBytecodeIndex( CTI_RETURN_ADDRESS);4728 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 4729 4729 ARG_globalData->exception = createInvalidParamError(callFrame, "instanceof", baseVal, vPCIndex, codeBlock); 4730 4730 VM_THROW_EXCEPTION(); … … 4748 4748 } 4749 4749 4750 JSValue* Interpreter::cti_op_del_by_id( CTI_ARGS)4751 { 4752 CTI_STACK_HACK();4750 JSValue* Interpreter::cti_op_del_by_id(STUB_ARGS) 4751 { 4752 BEGIN_STUB_FUNCTION(); 4753 4753 4754 4754 CallFrame* callFrame = ARG_callFrame; … … 4761 4761 } 4762 4762 4763 JSValue* Interpreter::cti_op_mul( CTI_ARGS)4764 { 4765 CTI_STACK_HACK();4763 JSValue* Interpreter::cti_op_mul(STUB_ARGS) 4764 { 4765 BEGIN_STUB_FUNCTION(); 4766 4766 4767 4767 JSValue* src1 = ARG_src1; … … 4779 4779 } 4780 4780 4781 JSObject* Interpreter::cti_op_new_func( CTI_ARGS)4782 { 4783 CTI_STACK_HACK();4781 JSObject* Interpreter::cti_op_new_func(STUB_ARGS) 4782 { 4783 BEGIN_STUB_FUNCTION(); 4784 4784 4785 4785 return ARG_func1->makeFunction(ARG_callFrame, ARG_callFrame->scopeChain()); 4786 4786 } 4787 4787 4788 void* Interpreter::cti_op_call_JSFunction( CTI_ARGS)4789 { 4790 CTI_STACK_HACK();4788 void* Interpreter::cti_op_call_JSFunction(STUB_ARGS) 4789 { 4790 BEGIN_STUB_FUNCTION(); 4791 4791 4792 4792 #ifndef NDEBUG … … 4804 4804 } 4805 4805 4806 VoidPtrPair Interpreter::cti_op_call_arityCheck( CTI_ARGS)4807 { 4808 CTI_STACK_HACK();4806 VoidPtrPair Interpreter::cti_op_call_arityCheck(STUB_ARGS) 4807 { 4808 BEGIN_STUB_FUNCTION(); 4809 4809 4810 4810 CallFrame* callFrame = ARG_callFrame; … … 4834 4834 // moved the call frame forward. 4835 4835 ARG_setCallFrame(oldCallFrame); 4836 throwStackOverflowError(oldCallFrame, ARG_globalData, ARG_returnAddress2, CTI_RETURN_ADDRESS);4836 throwStackOverflowError(oldCallFrame, ARG_globalData, ARG_returnAddress2, STUB_RETURN_ADDRESS); 4837 4837 RETURN_PAIR(0, 0); 4838 4838 } … … 4849 4849 } 4850 4850 4851 void* Interpreter::cti_vm_dontLazyLinkCall( CTI_ARGS)4852 { 4853 CTI_STACK_HACK();4851 void* Interpreter::cti_vm_dontLazyLinkCall(STUB_ARGS) 4852 { 4853 BEGIN_STUB_FUNCTION(); 4854 4854 4855 4855 JSFunction* callee = asFunction(ARG_src1); … … 4863 4863 } 4864 4864 4865 void* Interpreter::cti_vm_lazyLinkCall( CTI_ARGS)4866 { 4867 CTI_STACK_HACK();4865 void* Interpreter::cti_vm_lazyLinkCall(STUB_ARGS) 4866 { 4867 BEGIN_STUB_FUNCTION(); 4868 4868 4869 4869 JSFunction* callee = asFunction(ARG_src1); … … 4878 4878 } 4879 4879 4880 JSObject* Interpreter::cti_op_push_activation( CTI_ARGS)4881 { 4882 CTI_STACK_HACK();4880 JSObject* Interpreter::cti_op_push_activation(STUB_ARGS) 4881 { 4882 BEGIN_STUB_FUNCTION(); 4883 4883 4884 4884 JSActivation* activation = new (ARG_globalData) JSActivation(ARG_callFrame, static_cast<FunctionBodyNode*>(ARG_callFrame->codeBlock()->ownerNode())); … … 4887 4887 } 4888 4888 4889 JSValue* Interpreter::cti_op_call_NotJSFunction( CTI_ARGS)4890 { 4891 CTI_STACK_HACK();4889 JSValue* Interpreter::cti_op_call_NotJSFunction(STUB_ARGS) 4890 { 4891 BEGIN_STUB_FUNCTION(); 4892 4892 4893 4893 JSValue* funcVal = ARG_src1; … … 4904 4904 CallFrame* callFrame = CallFrame::create(previousCallFrame->registers() + registerOffset); 4905 4905 4906 callFrame->init(0, static_cast<Instruction*>( CTI_RETURN_ADDRESS), previousCallFrame->scopeChain(), previousCallFrame, 0, argCount, 0);4906 callFrame->init(0, static_cast<Instruction*>(STUB_RETURN_ADDRESS), previousCallFrame->scopeChain(), previousCallFrame, 0, argCount, 0); 4907 4907 ARG_setCallFrame(callFrame); 4908 4908 … … 4930 4930 4931 4931 CodeBlock* codeBlock = ARG_callFrame->codeBlock(); 4932 unsigned vPCIndex = codeBlock->getBytecodeIndex( CTI_RETURN_ADDRESS);4932 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 4933 4933 ARG_globalData->exception = createNotAFunctionError(ARG_callFrame, funcVal, vPCIndex, codeBlock); 4934 4934 VM_THROW_EXCEPTION(); 4935 4935 } 4936 4936 4937 void Interpreter::cti_op_create_arguments( CTI_ARGS)4938 { 4939 CTI_STACK_HACK();4937 void Interpreter::cti_op_create_arguments(STUB_ARGS) 4938 { 4939 BEGIN_STUB_FUNCTION(); 4940 4940 4941 4941 Arguments* arguments = new (ARG_globalData) Arguments(ARG_callFrame); … … 4944 4944 } 4945 4945 4946 void Interpreter::cti_op_create_arguments_no_params( CTI_ARGS)4947 { 4948 CTI_STACK_HACK();4946 void Interpreter::cti_op_create_arguments_no_params(STUB_ARGS) 4947 { 4948 BEGIN_STUB_FUNCTION(); 4949 4949 4950 4950 Arguments* arguments = new (ARG_globalData) Arguments(ARG_callFrame, Arguments::NoParameters); … … 4953 4953 } 4954 4954 4955 void Interpreter::cti_op_tear_off_activation( CTI_ARGS)4956 { 4957 CTI_STACK_HACK();4955 void Interpreter::cti_op_tear_off_activation(STUB_ARGS) 4956 { 4957 BEGIN_STUB_FUNCTION(); 4958 4958 4959 4959 ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain()); … … 4961 4961 } 4962 4962 4963 void Interpreter::cti_op_tear_off_arguments( CTI_ARGS)4964 { 4965 CTI_STACK_HACK();4963 void Interpreter::cti_op_tear_off_arguments(STUB_ARGS) 4964 { 4965 BEGIN_STUB_FUNCTION(); 4966 4966 4967 4967 ASSERT(ARG_callFrame->codeBlock()->usesArguments() && !ARG_callFrame->codeBlock()->needsFullScopeChain()); … … 4969 4969 } 4970 4970 4971 void Interpreter::cti_op_profile_will_call( CTI_ARGS)4972 { 4973 CTI_STACK_HACK();4971 void Interpreter::cti_op_profile_will_call(STUB_ARGS) 4972 { 4973 BEGIN_STUB_FUNCTION(); 4974 4974 4975 4975 ASSERT(*ARG_profilerReference); … … 4977 4977 } 4978 4978 4979 void Interpreter::cti_op_profile_did_call( CTI_ARGS)4980 { 4981 CTI_STACK_HACK();4979 void Interpreter::cti_op_profile_did_call(STUB_ARGS) 4980 { 4981 BEGIN_STUB_FUNCTION(); 4982 4982 4983 4983 ASSERT(*ARG_profilerReference); … … 4985 4985 } 4986 4986 4987 void Interpreter::cti_op_ret_scopeChain( CTI_ARGS)4988 { 4989 CTI_STACK_HACK();4987 void Interpreter::cti_op_ret_scopeChain(STUB_ARGS) 4988 { 4989 BEGIN_STUB_FUNCTION(); 4990 4990 4991 4991 ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain()); … … 4993 4993 } 4994 4994 4995 JSObject* Interpreter::cti_op_new_array( CTI_ARGS)4996 { 4997 CTI_STACK_HACK();4995 JSObject* Interpreter::cti_op_new_array(STUB_ARGS) 4996 { 4997 BEGIN_STUB_FUNCTION(); 4998 4998 4999 4999 ArgList argList(&ARG_callFrame->registers()[ARG_int1], ARG_int2); … … 5001 5001 } 5002 5002 5003 JSValue* Interpreter::cti_op_resolve( CTI_ARGS)5004 { 5005 CTI_STACK_HACK();5003 JSValue* Interpreter::cti_op_resolve(STUB_ARGS) 5004 { 5005 BEGIN_STUB_FUNCTION(); 5006 5006 5007 5007 CallFrame* callFrame = ARG_callFrame; … … 5024 5024 5025 5025 CodeBlock* codeBlock = callFrame->codeBlock(); 5026 unsigned vPCIndex = codeBlock->getBytecodeIndex( CTI_RETURN_ADDRESS);5026 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 5027 5027 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock); 5028 5028 VM_THROW_EXCEPTION(); 5029 5029 } 5030 5030 5031 JSObject* Interpreter::cti_op_construct_JSConstruct( CTI_ARGS)5032 { 5033 CTI_STACK_HACK();5031 JSObject* Interpreter::cti_op_construct_JSConstruct(STUB_ARGS) 5032 { 5033 BEGIN_STUB_FUNCTION(); 5034 5034 5035 5035 #ifndef NDEBUG … … 5046 5046 } 5047 5047 5048 JSValue* Interpreter::cti_op_construct_NotJSConstruct( CTI_ARGS)5049 { 5050 CTI_STACK_HACK();5048 JSValue* Interpreter::cti_op_construct_NotJSConstruct(STUB_ARGS) 5049 { 5050 BEGIN_STUB_FUNCTION(); 5051 5051 5052 5052 CallFrame* callFrame = ARG_callFrame; … … 5075 5075 5076 5076 CodeBlock* codeBlock = callFrame->codeBlock(); 5077 unsigned vPCIndex = codeBlock->getBytecodeIndex( CTI_RETURN_ADDRESS);5077 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 5078 5078 ARG_globalData->exception = createNotAConstructorError(callFrame, constrVal, vPCIndex, codeBlock); 5079 5079 VM_THROW_EXCEPTION(); 5080 5080 } 5081 5081 5082 JSValue* Interpreter::cti_op_get_by_val( CTI_ARGS)5083 { 5084 CTI_STACK_HACK();5082 JSValue* Interpreter::cti_op_get_by_val(STUB_ARGS) 5083 { 5084 BEGIN_STUB_FUNCTION(); 5085 5085 5086 5086 CallFrame* callFrame = ARG_callFrame; … … 5114 5114 } 5115 5115 5116 VoidPtrPair Interpreter::cti_op_resolve_func( CTI_ARGS)5117 { 5118 CTI_STACK_HACK();5116 VoidPtrPair Interpreter::cti_op_resolve_func(STUB_ARGS) 5117 { 5118 BEGIN_STUB_FUNCTION(); 5119 5119 5120 5120 CallFrame* callFrame = ARG_callFrame; … … 5151 5151 5152 5152 CodeBlock* codeBlock = callFrame->codeBlock(); 5153 unsigned vPCIndex = codeBlock->getBytecodeIndex( CTI_RETURN_ADDRESS);5153 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 5154 5154 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock); 5155 5155 VM_THROW_EXCEPTION_2(); 5156 5156 } 5157 5157 5158 JSValue* Interpreter::cti_op_sub( CTI_ARGS)5159 { 5160 CTI_STACK_HACK();5158 JSValue* Interpreter::cti_op_sub(STUB_ARGS) 5159 { 5160 BEGIN_STUB_FUNCTION(); 5161 5161 5162 5162 JSValue* src1 = ARG_src1; … … 5174 5174 } 5175 5175 5176 void Interpreter::cti_op_put_by_val( CTI_ARGS)5177 { 5178 CTI_STACK_HACK();5176 void Interpreter::cti_op_put_by_val(STUB_ARGS) 5177 { 5178 BEGIN_STUB_FUNCTION(); 5179 5179 5180 5180 CallFrame* callFrame = ARG_callFrame; … … 5208 5208 } 5209 5209 5210 void Interpreter::cti_op_put_by_val_array( CTI_ARGS)5211 { 5212 CTI_STACK_HACK();5210 void Interpreter::cti_op_put_by_val_array(STUB_ARGS) 5211 { 5212 BEGIN_STUB_FUNCTION(); 5213 5213 5214 5214 CallFrame* callFrame = ARG_callFrame; … … 5234 5234 } 5235 5235 5236 JSValue* Interpreter::cti_op_lesseq( CTI_ARGS)5237 { 5238 CTI_STACK_HACK();5236 JSValue* Interpreter::cti_op_lesseq(STUB_ARGS) 5237 { 5238 BEGIN_STUB_FUNCTION(); 5239 5239 5240 5240 CallFrame* callFrame = ARG_callFrame; … … 5244 5244 } 5245 5245 5246 int Interpreter::cti_op_loop_if_true( CTI_ARGS)5247 { 5248 CTI_STACK_HACK();5246 int Interpreter::cti_op_loop_if_true(STUB_ARGS) 5247 { 5248 BEGIN_STUB_FUNCTION(); 5249 5249 5250 5250 JSValue* src1 = ARG_src1; … … 5257 5257 } 5258 5258 5259 JSValue* Interpreter::cti_op_negate( CTI_ARGS)5260 { 5261 CTI_STACK_HACK();5259 JSValue* Interpreter::cti_op_negate(STUB_ARGS) 5260 { 5261 BEGIN_STUB_FUNCTION(); 5262 5262 5263 5263 JSValue* src = ARG_src1; … … 5273 5273 } 5274 5274 5275 JSValue* Interpreter::cti_op_resolve_base( CTI_ARGS)5276 { 5277 CTI_STACK_HACK();5275 JSValue* Interpreter::cti_op_resolve_base(STUB_ARGS) 5276 { 5277 BEGIN_STUB_FUNCTION(); 5278 5278 5279 5279 return inlineResolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame->scopeChain()); 5280 5280 } 5281 5281 5282 JSValue* Interpreter::cti_op_resolve_skip( CTI_ARGS)5283 { 5284 CTI_STACK_HACK();5282 JSValue* Interpreter::cti_op_resolve_skip(STUB_ARGS) 5283 { 5284 BEGIN_STUB_FUNCTION(); 5285 5285 5286 5286 CallFrame* callFrame = ARG_callFrame; … … 5308 5308 5309 5309 CodeBlock* codeBlock = callFrame->codeBlock(); 5310 unsigned vPCIndex = codeBlock->getBytecodeIndex( CTI_RETURN_ADDRESS);5310 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 5311 5311 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock); 5312 5312 VM_THROW_EXCEPTION(); 5313 5313 } 5314 5314 5315 JSValue* Interpreter::cti_op_resolve_global( CTI_ARGS)5316 { 5317 CTI_STACK_HACK();5315 JSValue* Interpreter::cti_op_resolve_global(STUB_ARGS) 5316 { 5317 BEGIN_STUB_FUNCTION(); 5318 5318 5319 5319 CallFrame* callFrame = ARG_callFrame; … … 5340 5340 } 5341 5341 5342 unsigned vPCIndex = ARG_callFrame->codeBlock()->getBytecodeIndex( CTI_RETURN_ADDRESS);5342 unsigned vPCIndex = ARG_callFrame->codeBlock()->getBytecodeIndex(STUB_RETURN_ADDRESS); 5343 5343 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, callFrame->codeBlock()); 5344 5344 VM_THROW_EXCEPTION(); 5345 5345 } 5346 5346 5347 JSValue* Interpreter::cti_op_div( CTI_ARGS)5348 { 5349 CTI_STACK_HACK();5347 JSValue* Interpreter::cti_op_div(STUB_ARGS) 5348 { 5349 BEGIN_STUB_FUNCTION(); 5350 5350 5351 5351 JSValue* src1 = ARG_src1; … … 5363 5363 } 5364 5364 5365 JSValue* Interpreter::cti_op_pre_dec( CTI_ARGS)5366 { 5367 CTI_STACK_HACK();5365 JSValue* Interpreter::cti_op_pre_dec(STUB_ARGS) 5366 { 5367 BEGIN_STUB_FUNCTION(); 5368 5368 5369 5369 JSValue* v = ARG_src1; … … 5375 5375 } 5376 5376 5377 int Interpreter::cti_op_jless( CTI_ARGS)5378 { 5379 CTI_STACK_HACK();5377 int Interpreter::cti_op_jless(STUB_ARGS) 5378 { 5379 BEGIN_STUB_FUNCTION(); 5380 5380 5381 5381 JSValue* src1 = ARG_src1; … … 5388 5388 } 5389 5389 5390 JSValue* Interpreter::cti_op_not( CTI_ARGS)5391 { 5392 CTI_STACK_HACK();5390 JSValue* Interpreter::cti_op_not(STUB_ARGS) 5391 { 5392 BEGIN_STUB_FUNCTION(); 5393 5393 5394 5394 JSValue* src = ARG_src1; … … 5401 5401 } 5402 5402 5403 int SFX_CALL Interpreter::cti_op_jtrue(CTI_ARGS)5404 { 5405 CTI_STACK_HACK();5403 int Interpreter::cti_op_jtrue(STUB_ARGS) 5404 { 5405 BEGIN_STUB_FUNCTION(); 5406 5406 5407 5407 JSValue* src1 = ARG_src1; … … 5414 5414 } 5415 5415 5416 VoidPtrPair Interpreter::cti_op_post_inc( CTI_ARGS)5417 { 5418 CTI_STACK_HACK();5416 VoidPtrPair Interpreter::cti_op_post_inc(STUB_ARGS) 5417 { 5418 BEGIN_STUB_FUNCTION(); 5419 5419 5420 5420 JSValue* v = ARG_src1; … … 5428 5428 } 5429 5429 5430 JSValue* Interpreter::cti_op_eq( CTI_ARGS)5431 { 5432 CTI_STACK_HACK();5430 JSValue* Interpreter::cti_op_eq(STUB_ARGS) 5431 { 5432 BEGIN_STUB_FUNCTION(); 5433 5433 5434 5434 JSValue* src1 = ARG_src1; … … 5443 5443 } 5444 5444 5445 JSValue* Interpreter::cti_op_lshift( CTI_ARGS)5446 { 5447 CTI_STACK_HACK();5445 JSValue* Interpreter::cti_op_lshift(STUB_ARGS) 5446 { 5447 BEGIN_STUB_FUNCTION(); 5448 5448 5449 5449 JSValue* val = ARG_src1; … … 5463 5463 } 5464 5464 5465 JSValue* Interpreter::cti_op_bitand( CTI_ARGS)5466 { 5467 CTI_STACK_HACK();5465 JSValue* Interpreter::cti_op_bitand(STUB_ARGS) 5466 { 5467 BEGIN_STUB_FUNCTION(); 5468 5468 5469 5469 JSValue* src1 = ARG_src1; … … 5481 5481 } 5482 5482 5483 JSValue* Interpreter::cti_op_rshift( CTI_ARGS)5484 { 5485 CTI_STACK_HACK();5483 JSValue* Interpreter::cti_op_rshift(STUB_ARGS) 5484 { 5485 BEGIN_STUB_FUNCTION(); 5486 5486 5487 5487 JSValue* val = ARG_src1; … … 5501 5501 } 5502 5502 5503 JSValue* Interpreter::cti_op_bitnot( CTI_ARGS)5504 { 5505 CTI_STACK_HACK();5503 JSValue* Interpreter::cti_op_bitnot(STUB_ARGS) 5504 { 5505 BEGIN_STUB_FUNCTION(); 5506 5506 5507 5507 JSValue* src = ARG_src1; … … 5517 5517 } 5518 5518 5519 VoidPtrPair Interpreter::cti_op_resolve_with_base( CTI_ARGS)5520 { 5521 CTI_STACK_HACK();5519 VoidPtrPair Interpreter::cti_op_resolve_with_base(STUB_ARGS) 5520 { 5521 BEGIN_STUB_FUNCTION(); 5522 5522 5523 5523 CallFrame* callFrame = ARG_callFrame; … … 5546 5546 5547 5547 CodeBlock* codeBlock = callFrame->codeBlock(); 5548 unsigned vPCIndex = codeBlock->getBytecodeIndex( CTI_RETURN_ADDRESS);5548 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 5549 5549 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock); 5550 5550 VM_THROW_EXCEPTION_2(); 5551 5551 } 5552 5552 5553 JSObject* Interpreter::cti_op_new_func_exp( CTI_ARGS)5554 { 5555 CTI_STACK_HACK();5553 JSObject* Interpreter::cti_op_new_func_exp(STUB_ARGS) 5554 { 5555 BEGIN_STUB_FUNCTION(); 5556 5556 5557 5557 return ARG_funcexp1->makeFunction(ARG_callFrame, ARG_callFrame->scopeChain()); 5558 5558 } 5559 5559 5560 JSValue* Interpreter::cti_op_mod( CTI_ARGS)5561 { 5562 CTI_STACK_HACK();5560 JSValue* Interpreter::cti_op_mod(STUB_ARGS) 5561 { 5562 BEGIN_STUB_FUNCTION(); 5563 5563 5564 5564 JSValue* dividendValue = ARG_src1; … … 5572 5572 } 5573 5573 5574 JSValue* Interpreter::cti_op_less( CTI_ARGS)5575 { 5576 CTI_STACK_HACK();5574 JSValue* Interpreter::cti_op_less(STUB_ARGS) 5575 { 5576 BEGIN_STUB_FUNCTION(); 5577 5577 5578 5578 CallFrame* callFrame = ARG_callFrame; … … 5582 5582 } 5583 5583 5584 JSValue* Interpreter::cti_op_neq( CTI_ARGS)5585 { 5586 CTI_STACK_HACK();5584 JSValue* Interpreter::cti_op_neq(STUB_ARGS) 5585 { 5586 BEGIN_STUB_FUNCTION(); 5587 5587 5588 5588 JSValue* src1 = ARG_src1; … … 5597 5597 } 5598 5598 5599 VoidPtrPair Interpreter::cti_op_post_dec( CTI_ARGS)5600 { 5601 CTI_STACK_HACK();5599 VoidPtrPair Interpreter::cti_op_post_dec(STUB_ARGS) 5600 { 5601 BEGIN_STUB_FUNCTION(); 5602 5602 5603 5603 JSValue* v = ARG_src1; … … 5611 5611 } 5612 5612 5613 JSValue* Interpreter::cti_op_urshift( CTI_ARGS)5614 { 5615 CTI_STACK_HACK();5613 JSValue* Interpreter::cti_op_urshift(STUB_ARGS) 5614 { 5615 BEGIN_STUB_FUNCTION(); 5616 5616 5617 5617 JSValue* val = ARG_src1; … … 5629 5629 } 5630 5630 5631 JSValue* Interpreter::cti_op_bitxor( CTI_ARGS)5632 { 5633 CTI_STACK_HACK();5631 JSValue* Interpreter::cti_op_bitxor(STUB_ARGS) 5632 { 5633 BEGIN_STUB_FUNCTION(); 5634 5634 5635 5635 JSValue* src1 = ARG_src1; … … 5643 5643 } 5644 5644 5645 JSObject* Interpreter::cti_op_new_regexp( CTI_ARGS)5646 { 5647 CTI_STACK_HACK();5645 JSObject* Interpreter::cti_op_new_regexp(STUB_ARGS) 5646 { 5647 BEGIN_STUB_FUNCTION(); 5648 5648 5649 5649 return new (ARG_globalData) RegExpObject(ARG_callFrame->lexicalGlobalObject()->regExpStructure(), ARG_regexp1); 5650 5650 } 5651 5651 5652 JSValue* Interpreter::cti_op_bitor( CTI_ARGS)5653 { 5654 CTI_STACK_HACK();5652 JSValue* Interpreter::cti_op_bitor(STUB_ARGS) 5653 { 5654 BEGIN_STUB_FUNCTION(); 5655 5655 5656 5656 JSValue* src1 = ARG_src1; … … 5664 5664 } 5665 5665 5666 JSValue* Interpreter::cti_op_call_eval( CTI_ARGS)5667 { 5668 CTI_STACK_HACK();5666 JSValue* Interpreter::cti_op_call_eval(STUB_ARGS) 5667 { 5668 BEGIN_STUB_FUNCTION(); 5669 5669 5670 5670 CallFrame* callFrame = ARG_callFrame; … … 5695 5695 } 5696 5696 5697 JSValue* Interpreter::cti_op_throw( CTI_ARGS)5698 { 5699 CTI_STACK_HACK();5697 JSValue* Interpreter::cti_op_throw(STUB_ARGS) 5698 { 5699 BEGIN_STUB_FUNCTION(); 5700 5700 5701 5701 CallFrame* callFrame = ARG_callFrame; 5702 5702 CodeBlock* codeBlock = callFrame->codeBlock(); 5703 5703 5704 unsigned vPCIndex = codeBlock->getBytecodeIndex( CTI_RETURN_ADDRESS);5704 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 5705 5705 5706 5706 JSValue* exceptionValue = ARG_src1; … … 5717 5717 void* catchRoutine = handler->nativeCode; 5718 5718 ASSERT(catchRoutine); 5719 CTI_SET_RETURN_ADDRESS(catchRoutine);5719 STUB_SET_RETURN_ADDRESS(catchRoutine); 5720 5720 return exceptionValue; 5721 5721 } 5722 5722 5723 JSPropertyNameIterator* Interpreter::cti_op_get_pnames( CTI_ARGS)5724 { 5725 CTI_STACK_HACK();5723 JSPropertyNameIterator* Interpreter::cti_op_get_pnames(STUB_ARGS) 5724 { 5725 BEGIN_STUB_FUNCTION(); 5726 5726 5727 5727 return JSPropertyNameIterator::create(ARG_callFrame, ARG_src1); 5728 5728 } 5729 5729 5730 JSValue* Interpreter::cti_op_next_pname( CTI_ARGS)5731 { 5732 CTI_STACK_HACK();5730 JSValue* Interpreter::cti_op_next_pname(STUB_ARGS) 5731 { 5732 BEGIN_STUB_FUNCTION(); 5733 5733 5734 5734 JSPropertyNameIterator* it = ARG_pni1; … … 5739 5739 } 5740 5740 5741 void Interpreter::cti_op_push_scope( CTI_ARGS)5742 { 5743 CTI_STACK_HACK();5741 void Interpreter::cti_op_push_scope(STUB_ARGS) 5742 { 5743 BEGIN_STUB_FUNCTION(); 5744 5744 5745 5745 JSObject* o = ARG_src1->toObject(ARG_callFrame); … … 5748 5748 } 5749 5749 5750 void Interpreter::cti_op_pop_scope( CTI_ARGS)5751 { 5752 CTI_STACK_HACK();5750 void Interpreter::cti_op_pop_scope(STUB_ARGS) 5751 { 5752 BEGIN_STUB_FUNCTION(); 5753 5753 5754 5754 ARG_callFrame->setScopeChain(ARG_callFrame->scopeChain()->pop()); 5755 5755 } 5756 5756 5757 JSValue* Interpreter::cti_op_typeof( CTI_ARGS)5758 { 5759 CTI_STACK_HACK();5757 JSValue* Interpreter::cti_op_typeof(STUB_ARGS) 5758 { 5759 BEGIN_STUB_FUNCTION(); 5760 5760 5761 5761 return jsTypeStringForValue(ARG_callFrame, ARG_src1); 5762 5762 } 5763 5763 5764 JSValue* Interpreter::cti_op_is_undefined( CTI_ARGS)5765 { 5766 CTI_STACK_HACK();5764 JSValue* Interpreter::cti_op_is_undefined(STUB_ARGS) 5765 { 5766 BEGIN_STUB_FUNCTION(); 5767 5767 5768 5768 JSValue* v = ARG_src1; … … 5770 5770 } 5771 5771 5772 JSValue* Interpreter::cti_op_is_boolean( CTI_ARGS)5773 { 5774 CTI_STACK_HACK();5772 JSValue* Interpreter::cti_op_is_boolean(STUB_ARGS) 5773 { 5774 BEGIN_STUB_FUNCTION(); 5775 5775 5776 5776 return jsBoolean(ARG_src1->isBoolean()); 5777 5777 } 5778 5778 5779 JSValue* Interpreter::cti_op_is_number( CTI_ARGS)5780 { 5781 CTI_STACK_HACK();5779 JSValue* Interpreter::cti_op_is_number(STUB_ARGS) 5780 { 5781 BEGIN_STUB_FUNCTION(); 5782 5782 5783 5783 return jsBoolean(ARG_src1->isNumber()); 5784 5784 } 5785 5785 5786 JSValue* Interpreter::cti_op_is_string( CTI_ARGS)5787 { 5788 CTI_STACK_HACK();5786 JSValue* Interpreter::cti_op_is_string(STUB_ARGS) 5787 { 5788 BEGIN_STUB_FUNCTION(); 5789 5789 5790 5790 return jsBoolean(ARG_globalData->interpreter->isJSString(ARG_src1)); 5791 5791 } 5792 5792 5793 JSValue* Interpreter::cti_op_is_object( CTI_ARGS)5794 { 5795 CTI_STACK_HACK();5793 JSValue* Interpreter::cti_op_is_object(STUB_ARGS) 5794 { 5795 BEGIN_STUB_FUNCTION(); 5796 5796 5797 5797 return jsBoolean(jsIsObjectType(ARG_src1)); 5798 5798 } 5799 5799 5800 JSValue* Interpreter::cti_op_is_function( CTI_ARGS)5801 { 5802 CTI_STACK_HACK();5800 JSValue* Interpreter::cti_op_is_function(STUB_ARGS) 5801 { 5802 BEGIN_STUB_FUNCTION(); 5803 5803 5804 5804 return jsBoolean(jsIsFunctionType(ARG_src1)); 5805 5805 } 5806 5806 5807 JSValue* Interpreter::cti_op_stricteq( CTI_ARGS)5808 { 5809 CTI_STACK_HACK();5807 JSValue* Interpreter::cti_op_stricteq(STUB_ARGS) 5808 { 5809 BEGIN_STUB_FUNCTION(); 5810 5810 5811 5811 JSValue* src1 = ARG_src1; … … 5819 5819 } 5820 5820 5821 JSValue* Interpreter::cti_op_nstricteq( CTI_ARGS)5822 { 5823 CTI_STACK_HACK();5821 JSValue* Interpreter::cti_op_nstricteq(STUB_ARGS) 5822 { 5823 BEGIN_STUB_FUNCTION(); 5824 5824 5825 5825 JSValue* src1 = ARG_src1; … … 5833 5833 } 5834 5834 5835 JSValue* Interpreter::cti_op_to_jsnumber( CTI_ARGS)5836 { 5837 CTI_STACK_HACK();5835 JSValue* Interpreter::cti_op_to_jsnumber(STUB_ARGS) 5836 { 5837 BEGIN_STUB_FUNCTION(); 5838 5838 5839 5839 JSValue* src = ARG_src1; … … 5845 5845 } 5846 5846 5847 JSValue* Interpreter::cti_op_in( CTI_ARGS)5848 { 5849 CTI_STACK_HACK();5847 JSValue* Interpreter::cti_op_in(STUB_ARGS) 5848 { 5849 BEGIN_STUB_FUNCTION(); 5850 5850 5851 5851 CallFrame* callFrame = ARG_callFrame; … … 5855 5855 CallFrame* callFrame = ARG_callFrame; 5856 5856 CodeBlock* codeBlock = callFrame->codeBlock(); 5857 unsigned vPCIndex = codeBlock->getBytecodeIndex( CTI_RETURN_ADDRESS);5857 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 5858 5858 ARG_globalData->exception = createInvalidParamError(callFrame, "in", baseVal, vPCIndex, codeBlock); 5859 5859 VM_THROW_EXCEPTION(); … … 5872 5872 } 5873 5873 5874 JSObject* Interpreter::cti_op_push_new_scope( CTI_ARGS)5875 { 5876 CTI_STACK_HACK();5874 JSObject* Interpreter::cti_op_push_new_scope(STUB_ARGS) 5875 { 5876 BEGIN_STUB_FUNCTION(); 5877 5877 5878 5878 JSObject* scope = new (ARG_globalData) JSStaticScopeObject(ARG_callFrame, *ARG_id1, ARG_src2, DontDelete); … … 5883 5883 } 5884 5884 5885 void Interpreter::cti_op_jmp_scopes( CTI_ARGS)5886 { 5887 CTI_STACK_HACK();5885 void Interpreter::cti_op_jmp_scopes(STUB_ARGS) 5886 { 5887 BEGIN_STUB_FUNCTION(); 5888 5888 5889 5889 unsigned count = ARG_int1; … … 5896 5896 } 5897 5897 5898 void Interpreter::cti_op_put_by_index( CTI_ARGS)5899 { 5900 CTI_STACK_HACK();5898 void Interpreter::cti_op_put_by_index(STUB_ARGS) 5899 { 5900 BEGIN_STUB_FUNCTION(); 5901 5901 5902 5902 CallFrame* callFrame = ARG_callFrame; … … 5906 5906 } 5907 5907 5908 void* Interpreter::cti_op_switch_imm( CTI_ARGS)5909 { 5910 CTI_STACK_HACK();5908 void* Interpreter::cti_op_switch_imm(STUB_ARGS) 5909 { 5910 BEGIN_STUB_FUNCTION(); 5911 5911 5912 5912 JSValue* scrutinee = ARG_src1; … … 5923 5923 } 5924 5924 5925 void* Interpreter::cti_op_switch_char( CTI_ARGS)5926 { 5927 CTI_STACK_HACK();5925 void* Interpreter::cti_op_switch_char(STUB_ARGS) 5926 { 5927 BEGIN_STUB_FUNCTION(); 5928 5928 5929 5929 JSValue* scrutinee = ARG_src1; … … 5943 5943 } 5944 5944 5945 void* Interpreter::cti_op_switch_string( CTI_ARGS)5946 { 5947 CTI_STACK_HACK();5945 void* Interpreter::cti_op_switch_string(STUB_ARGS) 5946 { 5947 BEGIN_STUB_FUNCTION(); 5948 5948 5949 5949 JSValue* scrutinee = ARG_src1; … … 5962 5962 } 5963 5963 5964 JSValue* Interpreter::cti_op_del_by_val( CTI_ARGS)5965 { 5966 CTI_STACK_HACK();5964 JSValue* Interpreter::cti_op_del_by_val(STUB_ARGS) 5965 { 5966 BEGIN_STUB_FUNCTION(); 5967 5967 5968 5968 CallFrame* callFrame = ARG_callFrame; … … 5987 5987 } 5988 5988 5989 void Interpreter::cti_op_put_getter( CTI_ARGS)5990 { 5991 CTI_STACK_HACK();5989 void Interpreter::cti_op_put_getter(STUB_ARGS) 5990 { 5991 BEGIN_STUB_FUNCTION(); 5992 5992 5993 5993 CallFrame* callFrame = ARG_callFrame; … … 5999 5999 } 6000 6000 6001 void Interpreter::cti_op_put_setter( CTI_ARGS)6002 { 6003 CTI_STACK_HACK();6001 void Interpreter::cti_op_put_setter(STUB_ARGS) 6002 { 6003 BEGIN_STUB_FUNCTION(); 6004 6004 6005 6005 CallFrame* callFrame = ARG_callFrame; … … 6011 6011 } 6012 6012 6013 JSObject* Interpreter::cti_op_new_error( CTI_ARGS)6014 { 6015 CTI_STACK_HACK();6013 JSObject* Interpreter::cti_op_new_error(STUB_ARGS) 6014 { 6015 BEGIN_STUB_FUNCTION(); 6016 6016 6017 6017 CallFrame* callFrame = ARG_callFrame; … … 6024 6024 } 6025 6025 6026 void Interpreter::cti_op_debug( CTI_ARGS)6027 { 6028 CTI_STACK_HACK();6026 void Interpreter::cti_op_debug(STUB_ARGS) 6027 { 6028 BEGIN_STUB_FUNCTION(); 6029 6029 6030 6030 CallFrame* callFrame = ARG_callFrame; … … 6037 6037 } 6038 6038 6039 JSValue* Interpreter::cti_vm_throw( CTI_ARGS)6040 { 6041 CTI_STACK_HACK();6039 JSValue* Interpreter::cti_vm_throw(STUB_ARGS) 6040 { 6041 BEGIN_STUB_FUNCTION(); 6042 6042 6043 6043 CallFrame* callFrame = ARG_callFrame; … … 6061 6061 void* catchRoutine = handler->nativeCode; 6062 6062 ASSERT(catchRoutine); 6063 CTI_SET_RETURN_ADDRESS(catchRoutine);6063 STUB_SET_RETURN_ADDRESS(catchRoutine); 6064 6064 return exceptionValue; 6065 6065 } 6066 6066 6067 #undef CTI_RETURN_ADDRESS6068 #undef CTI_SET_RETURN_ADDRESS6069 #undef CTI_STACK_HACK6067 #undef STUB_RETURN_ADDRESS 6068 #undef STUB_SET_RETURN_ADDRESS 6069 #undef BEGIN_STUB_FUNCTION 6070 6070 #undef CHECK_FOR_EXCEPTION 6071 6071 #undef CHECK_FOR_EXCEPTION_AT_END
Note:
See TracChangeset
for help on using the changeset viewer.