Changeset 37597 in webkit for trunk/JavaScriptCore
- Timestamp:
- Oct 14, 2008, 7:39:52 PM (17 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r37586 r37597 1 2008-10-14 Maciej Stachowiak <[email protected]> 2 3 Rubber stamped by Sam Weinig. 4 5 - revert r37572 and r37581 for now 6 7 Turns out GCC 4.2 is still a (small) regression, we'll have to do 8 more work to turn it on. 9 10 * Configurations/DebugRelease.xcconfig: 11 * JavaScriptCore.xcodeproj/project.pbxproj: 12 * VM/CTI.cpp: 13 * VM/CTI.h: 14 * VM/Machine.cpp: 15 (JSC::Machine::cti_op_convert_this): 16 (JSC::Machine::cti_op_end): 17 (JSC::Machine::cti_op_add): 18 (JSC::Machine::cti_op_pre_inc): 19 (JSC::Machine::cti_timeout_check): 20 (JSC::Machine::cti_register_file_check): 21 (JSC::Machine::cti_op_loop_if_less): 22 (JSC::Machine::cti_op_loop_if_lesseq): 23 (JSC::Machine::cti_op_new_object): 24 (JSC::Machine::cti_op_put_by_id): 25 (JSC::Machine::cti_op_put_by_id_second): 26 (JSC::Machine::cti_op_put_by_id_generic): 27 (JSC::Machine::cti_op_put_by_id_fail): 28 (JSC::Machine::cti_op_get_by_id): 29 (JSC::Machine::cti_op_get_by_id_second): 30 (JSC::Machine::cti_op_get_by_id_generic): 31 (JSC::Machine::cti_op_get_by_id_fail): 32 (JSC::Machine::cti_op_instanceof): 33 (JSC::Machine::cti_op_del_by_id): 34 (JSC::Machine::cti_op_mul): 35 (JSC::Machine::cti_op_new_func): 36 (JSC::Machine::cti_op_call_JSFunction): 37 (JSC::Machine::cti_vm_compile): 38 (JSC::Machine::cti_op_push_activation): 39 (JSC::Machine::cti_op_call_NotJSFunction): 40 (JSC::Machine::cti_op_create_arguments): 41 (JSC::Machine::cti_op_tear_off_activation): 42 (JSC::Machine::cti_op_tear_off_arguments): 43 (JSC::Machine::cti_op_ret_profiler): 44 (JSC::Machine::cti_op_ret_scopeChain): 45 (JSC::Machine::cti_op_new_array): 46 (JSC::Machine::cti_op_resolve): 47 (JSC::Machine::cti_op_construct_JSConstruct): 48 (JSC::Machine::cti_op_construct_NotJSConstruct): 49 (JSC::Machine::cti_op_get_by_val): 50 (JSC::Machine::cti_op_resolve_func): 51 (JSC::Machine::cti_op_sub): 52 (JSC::Machine::cti_op_put_by_val): 53 (JSC::Machine::cti_op_put_by_val_array): 54 (JSC::Machine::cti_op_lesseq): 55 (JSC::Machine::cti_op_loop_if_true): 56 (JSC::Machine::cti_op_negate): 57 (JSC::Machine::cti_op_resolve_base): 58 (JSC::Machine::cti_op_resolve_skip): 59 (JSC::Machine::cti_op_resolve_global): 60 (JSC::Machine::cti_op_div): 61 (JSC::Machine::cti_op_pre_dec): 62 (JSC::Machine::cti_op_jless): 63 (JSC::Machine::cti_op_not): 64 (JSC::Machine::cti_op_jtrue): 65 (JSC::Machine::cti_op_post_inc): 66 (JSC::Machine::cti_op_eq): 67 (JSC::Machine::cti_op_lshift): 68 (JSC::Machine::cti_op_bitand): 69 (JSC::Machine::cti_op_rshift): 70 (JSC::Machine::cti_op_bitnot): 71 (JSC::Machine::cti_op_resolve_with_base): 72 (JSC::Machine::cti_op_new_func_exp): 73 (JSC::Machine::cti_op_mod): 74 (JSC::Machine::cti_op_less): 75 (JSC::Machine::cti_op_neq): 76 (JSC::Machine::cti_op_post_dec): 77 (JSC::Machine::cti_op_urshift): 78 (JSC::Machine::cti_op_bitxor): 79 (JSC::Machine::cti_op_new_regexp): 80 (JSC::Machine::cti_op_bitor): 81 (JSC::Machine::cti_op_call_eval): 82 (JSC::Machine::cti_op_throw): 83 (JSC::Machine::cti_op_get_pnames): 84 (JSC::Machine::cti_op_next_pname): 85 (JSC::Machine::cti_op_push_scope): 86 (JSC::Machine::cti_op_pop_scope): 87 (JSC::Machine::cti_op_typeof): 88 (JSC::Machine::cti_op_is_undefined): 89 (JSC::Machine::cti_op_is_boolean): 90 (JSC::Machine::cti_op_is_number): 91 (JSC::Machine::cti_op_is_string): 92 (JSC::Machine::cti_op_is_object): 93 (JSC::Machine::cti_op_is_function): 94 (JSC::Machine::cti_op_stricteq): 95 (JSC::Machine::cti_op_nstricteq): 96 (JSC::Machine::cti_op_to_jsnumber): 97 (JSC::Machine::cti_op_in): 98 (JSC::Machine::cti_op_push_new_scope): 99 (JSC::Machine::cti_op_jmp_scopes): 100 (JSC::Machine::cti_op_put_by_index): 101 (JSC::Machine::cti_op_switch_imm): 102 (JSC::Machine::cti_op_switch_char): 103 (JSC::Machine::cti_op_switch_string): 104 (JSC::Machine::cti_op_del_by_val): 105 (JSC::Machine::cti_op_put_getter): 106 (JSC::Machine::cti_op_put_setter): 107 (JSC::Machine::cti_op_new_error): 108 (JSC::Machine::cti_op_debug): 109 (JSC::Machine::cti_vm_throw): 110 * VM/Machine.h: 111 * masm/X86Assembler.h: 112 (JSC::X86Assembler::emitRestoreArgumentReference): 113 (JSC::X86Assembler::emitRestoreArgumentReferenceForTrampoline): 114 * wtf/Platform.h: 115 1 116 2008-10-14 Alexey Proskuryakov <[email protected]> 2 117 -
trunk/JavaScriptCore/Configurations/DebugRelease.xcconfig
r37572 r37597 7 7 8 8 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 9 10 GCC_VERSION = $(GCC_VERSION_$(XCODE_VERSION_ACTUAL));11 GCC_VERSION_0310 = 4.2;12 GCC_VERSION_0311 = 4.2; -
trunk/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r37572 r37597 301 301 E1EF79AA0CE97BA60088D500 /* UTF8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1EF79A80CE97BA60088D500 /* UTF8.cpp */; }; 302 302 /* End PBXBuildFile section */ 303 304 /* Begin PBXBuildRule section */ 305 1CFE4BEC0B0BA1EB00CC444D /* PBXBuildRule */ = { 306 isa = PBXBuildRule; 307 compilerSpec = com.apple.compilers.gcc.4_0; 308 fileType = sourcecode.c; 309 isEditable = 1; 310 outputFiles = ( 311 ); 312 }; 313 1CFE4BF10B0BA22200CC444D /* PBXBuildRule */ = { 314 isa = PBXBuildRule; 315 compilerSpec = com.apple.compilers.gcc.4_0; 316 fileType = sourcecode.cpp; 317 isEditable = 1; 318 outputFiles = ( 319 ); 320 }; 321 5DAD97A80B39B88E0014FEFF /* PBXBuildRule */ = { 322 isa = PBXBuildRule; 323 compilerSpec = com.apple.compilers.gcc.4_0; 324 fileType = sourcecode.c; 325 isEditable = 1; 326 outputFiles = ( 327 ); 328 }; 329 5DAD97A80B39B88E0014FFFF /* PBXBuildRule */ = { 330 isa = PBXBuildRule; 331 compilerSpec = com.apple.compilers.gcc.4_0; 332 fileType = sourcecode.cpp; 333 isEditable = 1; 334 outputFiles = ( 335 ); 336 }; 337 5DAD97A80B39B88F0014FEFF /* PBXBuildRule */ = { 338 isa = PBXBuildRule; 339 compilerSpec = com.apple.compilers.gcc.4_0; 340 fileType = sourcecode.c; 341 isEditable = 1; 342 outputFiles = ( 343 ); 344 }; 345 5DAD97A80B39B88F0014FFFF /* PBXBuildRule */ = { 346 isa = PBXBuildRule; 347 compilerSpec = com.apple.compilers.gcc.4_0; 348 fileType = sourcecode.cpp; 349 isEditable = 1; 350 outputFiles = ( 351 ); 352 }; 353 5DAD97A80B39B89F0014FEFF /* PBXBuildRule */ = { 354 isa = PBXBuildRule; 355 compilerSpec = com.apple.compilers.gcc.4_0; 356 fileType = sourcecode.c; 357 isEditable = 1; 358 outputFiles = ( 359 ); 360 }; 361 5DAD97A80B39B89F0014FFFF /* PBXBuildRule */ = { 362 isa = PBXBuildRule; 363 compilerSpec = com.apple.compilers.gcc.4_0; 364 fileType = sourcecode.cpp; 365 isEditable = 1; 366 outputFiles = ( 367 ); 368 }; 369 /* End PBXBuildRule section */ 303 370 304 371 /* Begin PBXContainerItemProxy section */ … … 1550 1617 ); 1551 1618 buildRules = ( 1619 5DAD97A80B39B88E0014FEFF /* PBXBuildRule */, 1620 5DAD97A80B39B88E0014FFFF /* PBXBuildRule */, 1552 1621 ); 1553 1622 dependencies = ( … … 1568 1637 ); 1569 1638 buildRules = ( 1639 5DAD97A80B39B88F0014FEFF /* PBXBuildRule */, 1640 5DAD97A80B39B88F0014FFFF /* PBXBuildRule */, 1570 1641 ); 1571 1642 dependencies = ( … … 1590 1661 ); 1591 1662 buildRules = ( 1663 1CFE4BF10B0BA22200CC444D /* PBXBuildRule */, 1664 1CFE4BEC0B0BA1EB00CC444D /* PBXBuildRule */, 1592 1665 ); 1593 1666 dependencies = ( … … 1610 1683 ); 1611 1684 buildRules = ( 1685 5DAD97A80B39B89F0014FEFF /* PBXBuildRule */, 1686 5DAD97A80B39B89F0014FFFF /* PBXBuildRule */, 1612 1687 ); 1613 1688 dependencies = ( … … 2020 2095 baseConfigurationReference = 1C9051440BA9E8A70081E9D0 /* DebugRelease.xcconfig */; 2021 2096 buildSettings = { 2097 GCC_VERSION = 4.0; 2022 2098 STRIP_INSTALLED_PRODUCT = NO; 2023 2099 }; -
trunk/JavaScriptCore/VM/CTI.cpp
r37581 r37597 109 109 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 110 110 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" 111 #if USE(CTI_ARGUMENT) 112 #if USE(FAST_CALL_CTI_ARGUMENT) 111 113 "movl %esp, %ecx" "\n" 114 #else 115 "movl %esp, 0(%esp)" "\n" 116 #endif 112 117 "call " SYMBOL_STRING(_ZN3JSC7Machine12cti_vm_throwEPPv) "\n" 118 #else 119 "call " SYMBOL_STRING(_ZN3JSC7Machine12cti_vm_throwEPv) "\n" 120 #endif 113 121 "addl $0x24, %esp" "\n" 114 122 "popl %edi" "\n" -
trunk/JavaScriptCore/VM/CTI.h
r37581 r37597 45 45 #define CTI_ARGS_profilerReference 0x10 46 46 #define CTI_ARGS_globalData 0x11 47 #define ARG_registerFile ((RegisterFile*)( args)[CTI_ARGS_registerFile])48 #define ARG_callFrame ((CallFrame*)( args)[CTI_ARGS_callFrame])49 #define ARG_exception ((JSValue**)( args)[CTI_ARGS_exception])50 #define ARG_profilerReference ((Profiler**)( args)[CTI_ARGS_profilerReference])51 #define ARG_globalData ((JSGlobalData*)( args)[CTI_ARGS_globalData])52 53 #define ARG_setCallFrame(newCallFrame) (*(CallFrame**)&( args)[CTI_ARGS_callFrame] = (newCallFrame))54 55 #define ARG_src1 ((JSValue*)(( args)[1]))56 #define ARG_src2 ((JSValue*)(( args)[2]))57 #define ARG_src3 ((JSValue*)(( args)[3]))58 #define ARG_src4 ((JSValue*)(( args)[4]))59 #define ARG_src5 ((JSValue*)(( args)[5]))60 #define ARG_id1 ((Identifier*)(( args)[1]))61 #define ARG_id2 ((Identifier*)(( args)[2]))62 #define ARG_id3 ((Identifier*)(( args)[3]))63 #define ARG_id4 ((Identifier*)(( args)[4]))64 #define ARG_int1 ((int)(( args)[1]))65 #define ARG_int2 ((int)(( args)[2]))66 #define ARG_int3 ((int)(( args)[3]))67 #define ARG_int4 ((int)(( args)[4]))68 #define ARG_int5 ((int)(( args)[5]))69 #define ARG_func1 ((FuncDeclNode*)(( args)[1]))70 #define ARG_funcexp1 ((FuncExprNode*)(( args)[1]))71 #define ARG_registers1 ((Register*)(( args)[1]))72 #define ARG_regexp1 ((RegExp*)(( args)[1]))73 #define ARG_pni1 ((JSPropertyNameIterator*)(( args)[1]))74 #define ARG_instr1 ((Instruction*)(( args)[1]))75 #define ARG_instr2 ((Instruction*)(( args)[2]))76 #define ARG_instr3 ((Instruction*)(( args)[3]))77 #define ARG_instr4 ((Instruction*)(( args)[4]))78 #define ARG_instr5 ((Instruction*)(( args)[5]))79 #define ARG_instr6 ((Instruction*)(( args)[6]))80 81 #define CTI_RETURN_ADDRESS (( args)[-1])47 #define ARG_registerFile ((RegisterFile*)(ARGS)[CTI_ARGS_registerFile]) 48 #define ARG_callFrame ((CallFrame*)(ARGS)[CTI_ARGS_callFrame]) 49 #define ARG_exception ((JSValue**)(ARGS)[CTI_ARGS_exception]) 50 #define ARG_profilerReference ((Profiler**)(ARGS)[CTI_ARGS_profilerReference]) 51 #define ARG_globalData ((JSGlobalData*)(ARGS)[CTI_ARGS_globalData]) 52 53 #define ARG_setCallFrame(newCallFrame) (*(CallFrame**)&(ARGS)[CTI_ARGS_callFrame] = (newCallFrame)) 54 55 #define ARG_src1 ((JSValue*)((ARGS)[1])) 56 #define ARG_src2 ((JSValue*)((ARGS)[2])) 57 #define ARG_src3 ((JSValue*)((ARGS)[3])) 58 #define ARG_src4 ((JSValue*)((ARGS)[4])) 59 #define ARG_src5 ((JSValue*)((ARGS)[5])) 60 #define ARG_id1 ((Identifier*)((ARGS)[1])) 61 #define ARG_id2 ((Identifier*)((ARGS)[2])) 62 #define ARG_id3 ((Identifier*)((ARGS)[3])) 63 #define ARG_id4 ((Identifier*)((ARGS)[4])) 64 #define ARG_int1 ((int)((ARGS)[1])) 65 #define ARG_int2 ((int)((ARGS)[2])) 66 #define ARG_int3 ((int)((ARGS)[3])) 67 #define ARG_int4 ((int)((ARGS)[4])) 68 #define ARG_int5 ((int)((ARGS)[5])) 69 #define ARG_func1 ((FuncDeclNode*)((ARGS)[1])) 70 #define ARG_funcexp1 ((FuncExprNode*)((ARGS)[1])) 71 #define ARG_registers1 ((Register*)((ARGS)[1])) 72 #define ARG_regexp1 ((RegExp*)((ARGS)[1])) 73 #define ARG_pni1 ((JSPropertyNameIterator*)((ARGS)[1])) 74 #define ARG_instr1 ((Instruction*)((ARGS)[1])) 75 #define ARG_instr2 ((Instruction*)((ARGS)[2])) 76 #define ARG_instr3 ((Instruction*)((ARGS)[3])) 77 #define ARG_instr4 ((Instruction*)((ARGS)[4])) 78 #define ARG_instr5 ((Instruction*)((ARGS)[5])) 79 #define ARG_instr6 ((Instruction*)((ARGS)[6])) 80 81 #define CTI_RETURN_ADDRESS ((ARGS)[-1]) 82 82 83 83 namespace JSC { … … 96 96 struct OperandTypes; 97 97 98 typedef JSValue* (SFX_CALL *CTIHelper_j)( void** args);99 typedef JSPropertyNameIterator* (SFX_CALL *CTIHelper_p)( void** args);100 typedef void (SFX_CALL *CTIHelper_v)( void** args);101 typedef void* (SFX_CALL *CTIHelper_s)( void** args);102 typedef int (SFX_CALL *CTIHelper_b)( void** args);103 typedef VoidPtrPair (SFX_CALL *CTIHelper_2)( void** args);98 typedef JSValue* (SFX_CALL *CTIHelper_j)(CTI_ARGS); 99 typedef JSPropertyNameIterator* (SFX_CALL *CTIHelper_p)(CTI_ARGS); 100 typedef void (SFX_CALL *CTIHelper_v)(CTI_ARGS); 101 typedef void* (SFX_CALL *CTIHelper_s)(CTI_ARGS); 102 typedef int (SFX_CALL *CTIHelper_b)(CTI_ARGS); 103 typedef VoidPtrPair (SFX_CALL *CTIHelper_2)(CTI_ARGS); 104 104 105 105 struct CallRecord { … … 239 239 static const int repatchGetByIdDefaultOffset = 256; 240 240 241 #if USE(FAST_CALL_CTI_ARGUMENT) 241 242 static const int ctiArgumentInitSize = 2; 242 243 #elif USE(CTI_ARGUMENT) 244 static const int ctiArgumentInitSize = 4; 245 #else 246 static const int ctiArgumentInitSize = 0; 247 #endif 243 248 // These architecture specific value are used to enable repatching - see comment on op_put_by_id. 244 249 static const int repatchOffsetPutByIdStructureID = 19; -
trunk/JavaScriptCore/VM/Machine.cpp
r37581 r37597 4242 4242 } while (0) 4243 4243 4244 JSValue* Machine::cti_op_convert_this( void** args)4244 JSValue* Machine::cti_op_convert_this(CTI_ARGS) 4245 4245 { 4246 4246 JSValue* v1 = ARG_src1; … … 4252 4252 } 4253 4253 4254 void Machine::cti_op_end( void** args)4254 void Machine::cti_op_end(CTI_ARGS) 4255 4255 { 4256 4256 ScopeChainNode* scopeChain = ARG_callFrame->scopeChain(); … … 4259 4259 } 4260 4260 4261 JSValue* Machine::cti_op_add( void** args)4261 JSValue* Machine::cti_op_add(CTI_ARGS) 4262 4262 { 4263 4263 JSValue* v1 = ARG_src1; … … 4302 4302 } 4303 4303 4304 JSValue* Machine::cti_op_pre_inc( void** args)4304 JSValue* Machine::cti_op_pre_inc(CTI_ARGS) 4305 4305 { 4306 4306 JSValue* v = ARG_src1; … … 4312 4312 } 4313 4313 4314 void Machine::cti_timeout_check( void** args)4314 void Machine::cti_timeout_check(CTI_ARGS) 4315 4315 { 4316 4316 if (ARG_globalData->machine->checkTimeout(ARG_callFrame->dynamicGlobalObject())) { … … 4320 4320 } 4321 4321 4322 void Machine::cti_register_file_check( void** args)4322 void Machine::cti_register_file_check(CTI_ARGS) 4323 4323 { 4324 4324 CallFrame* callFrame = ARG_callFrame; … … 4336 4336 } 4337 4337 4338 int Machine::cti_op_loop_if_less( void** args)4338 int Machine::cti_op_loop_if_less(CTI_ARGS) 4339 4339 { 4340 4340 JSValue* src1 = ARG_src1; … … 4347 4347 } 4348 4348 4349 int Machine::cti_op_loop_if_lesseq( void** args)4349 int Machine::cti_op_loop_if_lesseq(CTI_ARGS) 4350 4350 { 4351 4351 JSValue* src1 = ARG_src1; … … 4358 4358 } 4359 4359 4360 JSValue* Machine::cti_op_new_object( void** args)4360 JSValue* Machine::cti_op_new_object(CTI_ARGS) 4361 4361 { 4362 4362 return constructEmptyObject(ARG_callFrame);; 4363 4363 } 4364 4364 4365 void Machine::cti_op_put_by_id( void** args)4365 void Machine::cti_op_put_by_id(CTI_ARGS) 4366 4366 { 4367 4367 CallFrame* callFrame = ARG_callFrame; … … 4376 4376 } 4377 4377 4378 void Machine::cti_op_put_by_id_second( void** args)4378 void Machine::cti_op_put_by_id_second(CTI_ARGS) 4379 4379 { 4380 4380 PutPropertySlot slot; … … 4384 4384 } 4385 4385 4386 void Machine::cti_op_put_by_id_generic( void** args)4386 void Machine::cti_op_put_by_id_generic(CTI_ARGS) 4387 4387 { 4388 4388 PutPropertySlot slot; … … 4391 4391 } 4392 4392 4393 void Machine::cti_op_put_by_id_fail( void** args)4393 void Machine::cti_op_put_by_id_fail(CTI_ARGS) 4394 4394 { 4395 4395 CallFrame* callFrame = ARG_callFrame; … … 4405 4405 } 4406 4406 4407 JSValue* Machine::cti_op_get_by_id( void** args)4407 JSValue* Machine::cti_op_get_by_id(CTI_ARGS) 4408 4408 { 4409 4409 CallFrame* callFrame = ARG_callFrame; … … 4420 4420 } 4421 4421 4422 JSValue* Machine::cti_op_get_by_id_second( void** args)4422 JSValue* Machine::cti_op_get_by_id_second(CTI_ARGS) 4423 4423 { 4424 4424 CallFrame* callFrame = ARG_callFrame; … … 4435 4435 } 4436 4436 4437 JSValue* Machine::cti_op_get_by_id_generic( void** args)4437 JSValue* Machine::cti_op_get_by_id_generic(CTI_ARGS) 4438 4438 { 4439 4439 CallFrame* callFrame = ARG_callFrame; … … 4448 4448 } 4449 4449 4450 JSValue* Machine::cti_op_get_by_id_fail( void** args)4450 JSValue* Machine::cti_op_get_by_id_fail(CTI_ARGS) 4451 4451 { 4452 4452 CallFrame* callFrame = ARG_callFrame; … … 4464 4464 } 4465 4465 4466 JSValue* Machine::cti_op_instanceof( void** args)4466 JSValue* Machine::cti_op_instanceof(CTI_ARGS) 4467 4467 { 4468 4468 CallFrame* callFrame = ARG_callFrame; … … 4505 4505 } 4506 4506 4507 JSValue* Machine::cti_op_del_by_id( void** args)4507 JSValue* Machine::cti_op_del_by_id(CTI_ARGS) 4508 4508 { 4509 4509 CallFrame* callFrame = ARG_callFrame; … … 4517 4517 } 4518 4518 4519 JSValue* Machine::cti_op_mul( void** args)4519 JSValue* Machine::cti_op_mul(CTI_ARGS) 4520 4520 { 4521 4521 JSValue* src1 = ARG_src1; … … 4533 4533 } 4534 4534 4535 JSValue* Machine::cti_op_new_func( void** args)4535 JSValue* Machine::cti_op_new_func(CTI_ARGS) 4536 4536 { 4537 4537 return ARG_func1->makeFunction(ARG_callFrame, ARG_callFrame->scopeChain()); 4538 4538 } 4539 4539 4540 VoidPtrPair Machine::cti_op_call_JSFunction( void** args)4540 VoidPtrPair Machine::cti_op_call_JSFunction(CTI_ARGS) 4541 4541 { 4542 4542 #ifndef NDEBUG … … 4587 4587 } 4588 4588 4589 void* Machine::cti_vm_compile( void** args)4589 void* Machine::cti_vm_compile(CTI_ARGS) 4590 4590 { 4591 4591 CodeBlock* codeBlock = ARG_callFrame->codeBlock(); … … 4595 4595 } 4596 4596 4597 JSValue* Machine::cti_op_push_activation( void** args)4597 JSValue* Machine::cti_op_push_activation(CTI_ARGS) 4598 4598 { 4599 4599 JSActivation* activation = new (ARG_globalData) JSActivation(ARG_callFrame, static_cast<FunctionBodyNode*>(ARG_callFrame->codeBlock()->ownerNode)); … … 4602 4602 } 4603 4603 4604 JSValue* Machine::cti_op_call_NotJSFunction( void** args)4604 JSValue* Machine::cti_op_call_NotJSFunction(CTI_ARGS) 4605 4605 { 4606 4606 JSValue* funcVal = ARG_src1; … … 4644 4644 } 4645 4645 4646 void Machine::cti_op_create_arguments( void** args)4646 void Machine::cti_op_create_arguments(CTI_ARGS) 4647 4647 { 4648 4648 Arguments* arguments = new (ARG_globalData) Arguments(ARG_callFrame); … … 4651 4651 } 4652 4652 4653 void Machine::cti_op_tear_off_activation( void** args)4653 void Machine::cti_op_tear_off_activation(CTI_ARGS) 4654 4654 { 4655 4655 ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain); … … 4658 4658 } 4659 4659 4660 void Machine::cti_op_tear_off_arguments( void** args)4660 void Machine::cti_op_tear_off_arguments(CTI_ARGS) 4661 4661 { 4662 4662 ASSERT(ARG_callFrame->codeBlock()->usesArguments && !ARG_callFrame->codeBlock()->needsFullScopeChain); … … 4664 4664 } 4665 4665 4666 void Machine::cti_op_ret_profiler( void** args)4666 void Machine::cti_op_ret_profiler(CTI_ARGS) 4667 4667 { 4668 4668 ASSERT(*ARG_profilerReference); … … 4670 4670 } 4671 4671 4672 void Machine::cti_op_ret_scopeChain( void** args)4672 void Machine::cti_op_ret_scopeChain(CTI_ARGS) 4673 4673 { 4674 4674 ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain); … … 4676 4676 } 4677 4677 4678 JSValue* Machine::cti_op_new_array( void** args)4678 JSValue* Machine::cti_op_new_array(CTI_ARGS) 4679 4679 { 4680 4680 ArgList argList(ARG_registers1, ARG_int2); … … 4682 4682 } 4683 4683 4684 JSValue* Machine::cti_op_resolve( void** args)4684 JSValue* Machine::cti_op_resolve(CTI_ARGS) 4685 4685 { 4686 4686 CallFrame* callFrame = ARG_callFrame; … … 4709 4709 } 4710 4710 4711 VoidPtrPair Machine::cti_op_construct_JSConstruct( void** args)4711 VoidPtrPair Machine::cti_op_construct_JSConstruct(CTI_ARGS) 4712 4712 { 4713 4713 CallFrame* callFrame = ARG_callFrame; … … 4772 4772 } 4773 4773 4774 JSValue* Machine::cti_op_construct_NotJSConstruct( void** args)4774 JSValue* Machine::cti_op_construct_NotJSConstruct(CTI_ARGS) 4775 4775 { 4776 4776 CallFrame* callFrame = ARG_callFrame; … … 4808 4808 } 4809 4809 4810 JSValue* Machine::cti_op_get_by_val( void** args)4810 JSValue* Machine::cti_op_get_by_val(CTI_ARGS) 4811 4811 { 4812 4812 CallFrame* callFrame = ARG_callFrame; … … 4840 4840 } 4841 4841 4842 VoidPtrPair Machine::cti_op_resolve_func( void** args)4842 VoidPtrPair Machine::cti_op_resolve_func(CTI_ARGS) 4843 4843 { 4844 4844 CallFrame* callFrame = ARG_callFrame; … … 4882 4882 } 4883 4883 4884 JSValue* Machine::cti_op_sub( void** args)4884 JSValue* Machine::cti_op_sub(CTI_ARGS) 4885 4885 { 4886 4886 JSValue* src1 = ARG_src1; … … 4898 4898 } 4899 4899 4900 void Machine::cti_op_put_by_val( void** args)4900 void Machine::cti_op_put_by_val(CTI_ARGS) 4901 4901 { 4902 4902 CallFrame* callFrame = ARG_callFrame; … … 4930 4930 } 4931 4931 4932 void Machine::cti_op_put_by_val_array( void** args)4932 void Machine::cti_op_put_by_val_array(CTI_ARGS) 4933 4933 { 4934 4934 CallFrame* callFrame = ARG_callFrame; … … 4954 4954 } 4955 4955 4956 JSValue* Machine::cti_op_lesseq( void** args)4956 JSValue* Machine::cti_op_lesseq(CTI_ARGS) 4957 4957 { 4958 4958 CallFrame* callFrame = ARG_callFrame; … … 4962 4962 } 4963 4963 4964 int Machine::cti_op_loop_if_true( void** args)4964 int Machine::cti_op_loop_if_true(CTI_ARGS) 4965 4965 { 4966 4966 JSValue* src1 = ARG_src1; … … 4973 4973 } 4974 4974 4975 JSValue* Machine::cti_op_negate( void** args)4975 JSValue* Machine::cti_op_negate(CTI_ARGS) 4976 4976 { 4977 4977 JSValue* src = ARG_src1; … … 4987 4987 } 4988 4988 4989 JSValue* Machine::cti_op_resolve_base( void** args)4989 JSValue* Machine::cti_op_resolve_base(CTI_ARGS) 4990 4990 { 4991 4991 return inlineResolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame->scopeChain()); 4992 4992 } 4993 4993 4994 JSValue* Machine::cti_op_resolve_skip( void** args)4994 JSValue* Machine::cti_op_resolve_skip(CTI_ARGS) 4995 4995 { 4996 4996 CallFrame* callFrame = ARG_callFrame; … … 5024 5024 } 5025 5025 5026 JSValue* Machine::cti_op_resolve_global( void** args)5026 JSValue* Machine::cti_op_resolve_global(CTI_ARGS) 5027 5027 { 5028 5028 CallFrame* callFrame = ARG_callFrame; … … 5052 5052 } 5053 5053 5054 JSValue* Machine::cti_op_div( void** args)5054 JSValue* Machine::cti_op_div(CTI_ARGS) 5055 5055 { 5056 5056 JSValue* src1 = ARG_src1; … … 5068 5068 } 5069 5069 5070 JSValue* Machine::cti_op_pre_dec( void** args)5070 JSValue* Machine::cti_op_pre_dec(CTI_ARGS) 5071 5071 { 5072 5072 JSValue* v = ARG_src1; … … 5078 5078 } 5079 5079 5080 int Machine::cti_op_jless( void** args)5080 int Machine::cti_op_jless(CTI_ARGS) 5081 5081 { 5082 5082 JSValue* src1 = ARG_src1; … … 5089 5089 } 5090 5090 5091 JSValue* Machine::cti_op_not( void** args)5091 JSValue* Machine::cti_op_not(CTI_ARGS) 5092 5092 { 5093 5093 JSValue* src = ARG_src1; … … 5100 5100 } 5101 5101 5102 int SFX_CALL Machine::cti_op_jtrue( void** args)5102 int SFX_CALL Machine::cti_op_jtrue(CTI_ARGS) 5103 5103 { 5104 5104 JSValue* src1 = ARG_src1; … … 5111 5111 } 5112 5112 5113 VoidPtrPair Machine::cti_op_post_inc( void** args)5113 VoidPtrPair Machine::cti_op_post_inc(CTI_ARGS) 5114 5114 { 5115 5115 JSValue* v = ARG_src1; … … 5124 5124 } 5125 5125 5126 JSValue* Machine::cti_op_eq( void** args)5126 JSValue* Machine::cti_op_eq(CTI_ARGS) 5127 5127 { 5128 5128 JSValue* src1 = ARG_src1; … … 5137 5137 } 5138 5138 5139 JSValue* Machine::cti_op_lshift( void** args)5139 JSValue* Machine::cti_op_lshift(CTI_ARGS) 5140 5140 { 5141 5141 JSValue* val = ARG_src1; … … 5155 5155 } 5156 5156 5157 JSValue* Machine::cti_op_bitand( void** args)5157 JSValue* Machine::cti_op_bitand(CTI_ARGS) 5158 5158 { 5159 5159 JSValue* src1 = ARG_src1; … … 5171 5171 } 5172 5172 5173 JSValue* Machine::cti_op_rshift( void** args)5173 JSValue* Machine::cti_op_rshift(CTI_ARGS) 5174 5174 { 5175 5175 JSValue* val = ARG_src1; … … 5189 5189 } 5190 5190 5191 JSValue* Machine::cti_op_bitnot( void** args)5191 JSValue* Machine::cti_op_bitnot(CTI_ARGS) 5192 5192 { 5193 5193 JSValue* src = ARG_src1; … … 5203 5203 } 5204 5204 5205 VoidPtrPair Machine::cti_op_resolve_with_base( void** args)5205 VoidPtrPair Machine::cti_op_resolve_with_base(CTI_ARGS) 5206 5206 { 5207 5207 CallFrame* callFrame = ARG_callFrame; … … 5237 5237 } 5238 5238 5239 JSValue* Machine::cti_op_new_func_exp( void** args)5239 JSValue* Machine::cti_op_new_func_exp(CTI_ARGS) 5240 5240 { 5241 5241 return ARG_funcexp1->makeFunction(ARG_callFrame, ARG_callFrame->scopeChain()); 5242 5242 } 5243 5243 5244 JSValue* Machine::cti_op_mod( void** args)5244 JSValue* Machine::cti_op_mod(CTI_ARGS) 5245 5245 { 5246 5246 JSValue* dividendValue = ARG_src1; … … 5254 5254 } 5255 5255 5256 JSValue* Machine::cti_op_less( void** args)5256 JSValue* Machine::cti_op_less(CTI_ARGS) 5257 5257 { 5258 5258 CallFrame* callFrame = ARG_callFrame; … … 5262 5262 } 5263 5263 5264 JSValue* Machine::cti_op_neq( void** args)5264 JSValue* Machine::cti_op_neq(CTI_ARGS) 5265 5265 { 5266 5266 JSValue* src1 = ARG_src1; … … 5275 5275 } 5276 5276 5277 VoidPtrPair Machine::cti_op_post_dec( void** args)5277 VoidPtrPair Machine::cti_op_post_dec(CTI_ARGS) 5278 5278 { 5279 5279 JSValue* v = ARG_src1; … … 5288 5288 } 5289 5289 5290 JSValue* Machine::cti_op_urshift( void** args)5290 JSValue* Machine::cti_op_urshift(CTI_ARGS) 5291 5291 { 5292 5292 JSValue* val = ARG_src1; … … 5304 5304 } 5305 5305 5306 JSValue* Machine::cti_op_bitxor( void** args)5306 JSValue* Machine::cti_op_bitxor(CTI_ARGS) 5307 5307 { 5308 5308 JSValue* src1 = ARG_src1; … … 5316 5316 } 5317 5317 5318 JSValue* Machine::cti_op_new_regexp( void** args)5318 JSValue* Machine::cti_op_new_regexp(CTI_ARGS) 5319 5319 { 5320 5320 return new (ARG_globalData) RegExpObject(ARG_callFrame->lexicalGlobalObject()->regExpStructure(), ARG_regexp1); 5321 5321 } 5322 5322 5323 JSValue* Machine::cti_op_bitor( void** args)5323 JSValue* Machine::cti_op_bitor(CTI_ARGS) 5324 5324 { 5325 5325 JSValue* src1 = ARG_src1; … … 5333 5333 } 5334 5334 5335 JSValue* Machine::cti_op_call_eval( void** args)5335 JSValue* Machine::cti_op_call_eval(CTI_ARGS) 5336 5336 { 5337 5337 CallFrame* callFrame = ARG_callFrame; … … 5358 5358 } 5359 5359 5360 void* Machine::cti_op_throw( void** args)5360 void* Machine::cti_op_throw(CTI_ARGS) 5361 5361 { 5362 5362 CallFrame* callFrame = ARG_callFrame; … … 5383 5383 } 5384 5384 5385 JSPropertyNameIterator* Machine::cti_op_get_pnames( void** args)5385 JSPropertyNameIterator* Machine::cti_op_get_pnames(CTI_ARGS) 5386 5386 { 5387 5387 return JSPropertyNameIterator::create(ARG_callFrame, ARG_src1); 5388 5388 } 5389 5389 5390 JSValue* Machine::cti_op_next_pname( void** args)5390 JSValue* Machine::cti_op_next_pname(CTI_ARGS) 5391 5391 { 5392 5392 JSPropertyNameIterator* it = ARG_pni1; … … 5397 5397 } 5398 5398 5399 void Machine::cti_op_push_scope( void** args)5399 void Machine::cti_op_push_scope(CTI_ARGS) 5400 5400 { 5401 5401 JSObject* o = ARG_src1->toObject(ARG_callFrame); … … 5404 5404 } 5405 5405 5406 void Machine::cti_op_pop_scope( void** args)5406 void Machine::cti_op_pop_scope(CTI_ARGS) 5407 5407 { 5408 5408 ARG_callFrame->setScopeChain(ARG_callFrame->scopeChain()->pop()); 5409 5409 } 5410 5410 5411 JSValue* Machine::cti_op_typeof( void** args)5411 JSValue* Machine::cti_op_typeof(CTI_ARGS) 5412 5412 { 5413 5413 return jsTypeStringForValue(ARG_callFrame, ARG_src1); 5414 5414 } 5415 5415 5416 JSValue* Machine::cti_op_is_undefined( void** args)5416 JSValue* Machine::cti_op_is_undefined(CTI_ARGS) 5417 5417 { 5418 5418 JSValue* v = ARG_src1; … … 5420 5420 } 5421 5421 5422 JSValue* Machine::cti_op_is_boolean( void** args)5422 JSValue* Machine::cti_op_is_boolean(CTI_ARGS) 5423 5423 { 5424 5424 return jsBoolean(ARG_src1->isBoolean()); 5425 5425 } 5426 5426 5427 JSValue* Machine::cti_op_is_number( void** args)5427 JSValue* Machine::cti_op_is_number(CTI_ARGS) 5428 5428 { 5429 5429 return jsBoolean(ARG_src1->isNumber()); 5430 5430 } 5431 5431 5432 JSValue* Machine::cti_op_is_string( void** args)5432 JSValue* Machine::cti_op_is_string(CTI_ARGS) 5433 5433 { 5434 5434 return jsBoolean(ARG_globalData->machine->isJSString(ARG_src1)); 5435 5435 } 5436 5436 5437 JSValue* Machine::cti_op_is_object( void** args)5437 JSValue* Machine::cti_op_is_object(CTI_ARGS) 5438 5438 { 5439 5439 return jsBoolean(jsIsObjectType(ARG_src1)); 5440 5440 } 5441 5441 5442 JSValue* Machine::cti_op_is_function( void** args)5442 JSValue* Machine::cti_op_is_function(CTI_ARGS) 5443 5443 { 5444 5444 return jsBoolean(jsIsFunctionType(ARG_src1)); 5445 5445 } 5446 5446 5447 JSValue* Machine::cti_op_stricteq( void** args)5447 JSValue* Machine::cti_op_stricteq(CTI_ARGS) 5448 5448 { 5449 5449 JSValue* src1 = ARG_src1; … … 5457 5457 } 5458 5458 5459 JSValue* Machine::cti_op_nstricteq( void** args)5459 JSValue* Machine::cti_op_nstricteq(CTI_ARGS) 5460 5460 { 5461 5461 JSValue* src1 = ARG_src1; … … 5469 5469 } 5470 5470 5471 JSValue* Machine::cti_op_to_jsnumber( void** args)5471 JSValue* Machine::cti_op_to_jsnumber(CTI_ARGS) 5472 5472 { 5473 5473 JSValue* src = ARG_src1; … … 5479 5479 } 5480 5480 5481 JSValue* Machine::cti_op_in( void** args)5481 JSValue* Machine::cti_op_in(CTI_ARGS) 5482 5482 { 5483 5483 CallFrame* callFrame = ARG_callFrame; … … 5505 5505 } 5506 5506 5507 JSValue* Machine::cti_op_push_new_scope( void** args)5507 JSValue* Machine::cti_op_push_new_scope(CTI_ARGS) 5508 5508 { 5509 5509 JSObject* scope = new (ARG_globalData) JSStaticScopeObject(ARG_callFrame, *ARG_id1, ARG_src2, DontDelete); … … 5514 5514 } 5515 5515 5516 void Machine::cti_op_jmp_scopes( void** args)5516 void Machine::cti_op_jmp_scopes(CTI_ARGS) 5517 5517 { 5518 5518 unsigned count = ARG_int1; … … 5525 5525 } 5526 5526 5527 void Machine::cti_op_put_by_index( void** args)5527 void Machine::cti_op_put_by_index(CTI_ARGS) 5528 5528 { 5529 5529 CallFrame* callFrame = ARG_callFrame; … … 5533 5533 } 5534 5534 5535 void* Machine::cti_op_switch_imm( void** args)5535 void* Machine::cti_op_switch_imm(CTI_ARGS) 5536 5536 { 5537 5537 JSValue* scrutinee = ARG_src1; … … 5548 5548 } 5549 5549 5550 void* Machine::cti_op_switch_char( void** args)5550 void* Machine::cti_op_switch_char(CTI_ARGS) 5551 5551 { 5552 5552 JSValue* scrutinee = ARG_src1; … … 5566 5566 } 5567 5567 5568 void* Machine::cti_op_switch_string( void** args)5568 void* Machine::cti_op_switch_string(CTI_ARGS) 5569 5569 { 5570 5570 JSValue* scrutinee = ARG_src1; … … 5583 5583 } 5584 5584 5585 JSValue* Machine::cti_op_del_by_val( void** args)5585 JSValue* Machine::cti_op_del_by_val(CTI_ARGS) 5586 5586 { 5587 5587 CallFrame* callFrame = ARG_callFrame; … … 5606 5606 } 5607 5607 5608 void Machine::cti_op_put_getter( void** args)5608 void Machine::cti_op_put_getter(CTI_ARGS) 5609 5609 { 5610 5610 CallFrame* callFrame = ARG_callFrame; … … 5617 5617 } 5618 5618 5619 void Machine::cti_op_put_setter( void** args)5619 void Machine::cti_op_put_setter(CTI_ARGS) 5620 5620 { 5621 5621 CallFrame* callFrame = ARG_callFrame; … … 5628 5628 } 5629 5629 5630 JSValue* Machine::cti_op_new_error( void** args)5630 JSValue* Machine::cti_op_new_error(CTI_ARGS) 5631 5631 { 5632 5632 CallFrame* callFrame = ARG_callFrame; … … 5639 5639 } 5640 5640 5641 void Machine::cti_op_debug( void** args)5641 void Machine::cti_op_debug(CTI_ARGS) 5642 5642 { 5643 5643 CallFrame* callFrame = ARG_callFrame; … … 5650 5650 } 5651 5651 5652 void* Machine::cti_vm_throw( void** args)5652 void* Machine::cti_vm_throw(CTI_ARGS) 5653 5653 { 5654 5654 CallFrame* callFrame = ARG_callFrame; -
trunk/JavaScriptCore/VM/Machine.h
r37581 r37597 54 54 #if ENABLE(CTI) 55 55 56 #if USE(CTI_ARGUMENT) 57 #define CTI_ARGS void** args 58 #define ARGS (args) 59 #else 60 #define CTI_ARGS void* args 61 #define ARGS (&args) 62 #endif 63 64 #if USE(FAST_CALL_CTI_ARGUMENT) 65 56 66 #if COMPILER(MSVC) 57 67 #define SFX_CALL __fastcall … … 60 70 #else 61 71 #error Need to support fastcall calling convention in this compiler 72 #endif 73 74 #else 75 76 #if COMPILER(MSVC) 77 #define SFX_CALL __cdecl 78 #else 79 #define SFX_CALL 80 #endif 81 62 82 #endif 63 83 … … 142 162 #if ENABLE(CTI) 143 163 144 static void SFX_CALL cti_timeout_check( void** args);145 static void SFX_CALL cti_register_file_check( void** args);146 147 static JSValue* SFX_CALL cti_op_convert_this( void** args);148 static void SFX_CALL cti_op_end( void** args);149 static JSValue* SFX_CALL cti_op_add( void** args);150 static JSValue* SFX_CALL cti_op_pre_inc( void** args);151 static int SFX_CALL cti_op_loop_if_less( void** args);152 static int SFX_CALL cti_op_loop_if_lesseq( void** args);153 static JSValue* SFX_CALL cti_op_new_object( void** args);154 static void SFX_CALL cti_op_put_by_id( void** args);155 static void SFX_CALL cti_op_put_by_id_second( void** args);156 static void SFX_CALL cti_op_put_by_id_generic( void** args);157 static void SFX_CALL cti_op_put_by_id_fail( void** args);158 static JSValue* SFX_CALL cti_op_get_by_id( void** args);159 static JSValue* SFX_CALL cti_op_get_by_id_second( void** args);160 static JSValue* SFX_CALL cti_op_get_by_id_generic( void** args);161 static JSValue* SFX_CALL cti_op_get_by_id_fail( void** args);162 static JSValue* SFX_CALL cti_op_del_by_id( void** args);163 static JSValue* SFX_CALL cti_op_instanceof( void** args);164 static JSValue* SFX_CALL cti_op_mul( void** args);165 static JSValue* SFX_CALL cti_op_new_func( void** args);166 static VoidPtrPair SFX_CALL cti_op_call_JSFunction( void** args);167 static JSValue* SFX_CALL cti_op_call_NotJSFunction( void** args);168 static void SFX_CALL cti_op_create_arguments( void** args);169 static void SFX_CALL cti_op_tear_off_activation( void** args);170 static void SFX_CALL cti_op_tear_off_arguments( void** args);171 static void SFX_CALL cti_op_ret_profiler( void** args);172 static void SFX_CALL cti_op_ret_scopeChain( void** args);173 static JSValue* SFX_CALL cti_op_new_array( void** args);174 static JSValue* SFX_CALL cti_op_resolve( void** args);175 static JSValue* SFX_CALL cti_op_resolve_global( void** args);176 static VoidPtrPair SFX_CALL cti_op_construct_JSConstruct( void** args);177 static JSValue* SFX_CALL cti_op_construct_NotJSConstruct( void** args);178 static JSValue* SFX_CALL cti_op_get_by_val( void** args);179 static VoidPtrPair SFX_CALL cti_op_resolve_func( void** args);180 static JSValue* SFX_CALL cti_op_sub( void** args);181 static void SFX_CALL cti_op_put_by_val( void** args);182 static void SFX_CALL cti_op_put_by_val_array( void** args);183 static JSValue* SFX_CALL cti_op_lesseq( void** args);184 static int SFX_CALL cti_op_loop_if_true( void** args);185 static JSValue* SFX_CALL cti_op_resolve_base( void** args);186 static JSValue* SFX_CALL cti_op_negate( void** args);187 static JSValue* SFX_CALL cti_op_resolve_skip( void** args);188 static JSValue* SFX_CALL cti_op_div( void** args);189 static JSValue* SFX_CALL cti_op_pre_dec( void** args);190 static int SFX_CALL cti_op_jless( void** args);191 static JSValue* SFX_CALL cti_op_not( void** args);192 static int SFX_CALL cti_op_jtrue( void** args);193 static VoidPtrPair SFX_CALL cti_op_post_inc( void** args);194 static JSValue* SFX_CALL cti_op_eq( void** args);195 static JSValue* SFX_CALL cti_op_lshift( void** args);196 static JSValue* SFX_CALL cti_op_bitand( void** args);197 static JSValue* SFX_CALL cti_op_rshift( void** args);198 static JSValue* SFX_CALL cti_op_bitnot( void** args);199 static VoidPtrPair SFX_CALL cti_op_resolve_with_base( void** args);200 static JSValue* SFX_CALL cti_op_new_func_exp( void** args);201 static JSValue* SFX_CALL cti_op_mod( void** args);202 static JSValue* SFX_CALL cti_op_less( void** args);203 static JSValue* SFX_CALL cti_op_neq( void** args);204 static VoidPtrPair SFX_CALL cti_op_post_dec( void** args);205 static JSValue* SFX_CALL cti_op_urshift( void** args);206 static JSValue* SFX_CALL cti_op_bitxor( void** args);207 static JSValue* SFX_CALL cti_op_new_regexp( void** args);208 static JSValue* SFX_CALL cti_op_bitor( void** args);209 static JSValue* SFX_CALL cti_op_call_eval( void** args);210 static void* SFX_CALL cti_op_throw( void** args);211 static JSPropertyNameIterator* SFX_CALL cti_op_get_pnames( void** args);212 static JSValue* SFX_CALL cti_op_next_pname( void** args);213 static void SFX_CALL cti_op_push_scope( void** args);214 static void SFX_CALL cti_op_pop_scope( void** args);215 static JSValue* SFX_CALL cti_op_typeof( void** args);216 static JSValue* SFX_CALL cti_op_is_undefined( void** args);217 static JSValue* SFX_CALL cti_op_is_boolean( void** args);218 static JSValue* SFX_CALL cti_op_is_number( void** args);219 static JSValue* SFX_CALL cti_op_is_string( void** args);220 static JSValue* SFX_CALL cti_op_is_object( void** args);221 static JSValue* SFX_CALL cti_op_is_function( void** args);222 static JSValue* SFX_CALL cti_op_stricteq( void** args);223 static JSValue* SFX_CALL cti_op_nstricteq( void** args);224 static JSValue* SFX_CALL cti_op_to_jsnumber( void** args);225 static JSValue* SFX_CALL cti_op_in( void** args);226 static JSValue* SFX_CALL cti_op_push_new_scope( void** args);227 static void SFX_CALL cti_op_jmp_scopes( void** args);228 static void SFX_CALL cti_op_put_by_index( void** args);229 static void* SFX_CALL cti_op_switch_imm( void** args);230 static void* SFX_CALL cti_op_switch_char( void** args);231 static void* SFX_CALL cti_op_switch_string( void** args);232 static JSValue* SFX_CALL cti_op_del_by_val( void** args);233 static void SFX_CALL cti_op_put_getter( void** args);234 static void SFX_CALL cti_op_put_setter( void** args);235 static JSValue* SFX_CALL cti_op_new_error( void** args);236 static void SFX_CALL cti_op_debug( void** args);237 238 static void* SFX_CALL cti_vm_throw( void** args);239 static void* SFX_CALL cti_vm_compile( void** args);240 static JSValue* SFX_CALL cti_op_push_activation( void** args);164 static void SFX_CALL cti_timeout_check(CTI_ARGS); 165 static void SFX_CALL cti_register_file_check(CTI_ARGS); 166 167 static JSValue* SFX_CALL cti_op_convert_this(CTI_ARGS); 168 static void SFX_CALL cti_op_end(CTI_ARGS); 169 static JSValue* SFX_CALL cti_op_add(CTI_ARGS); 170 static JSValue* SFX_CALL cti_op_pre_inc(CTI_ARGS); 171 static int SFX_CALL cti_op_loop_if_less(CTI_ARGS); 172 static int SFX_CALL cti_op_loop_if_lesseq(CTI_ARGS); 173 static JSValue* SFX_CALL cti_op_new_object(CTI_ARGS); 174 static void SFX_CALL cti_op_put_by_id(CTI_ARGS); 175 static void SFX_CALL cti_op_put_by_id_second(CTI_ARGS); 176 static void SFX_CALL cti_op_put_by_id_generic(CTI_ARGS); 177 static void SFX_CALL cti_op_put_by_id_fail(CTI_ARGS); 178 static JSValue* SFX_CALL cti_op_get_by_id(CTI_ARGS); 179 static JSValue* SFX_CALL cti_op_get_by_id_second(CTI_ARGS); 180 static JSValue* SFX_CALL cti_op_get_by_id_generic(CTI_ARGS); 181 static JSValue* SFX_CALL cti_op_get_by_id_fail(CTI_ARGS); 182 static JSValue* SFX_CALL cti_op_del_by_id(CTI_ARGS); 183 static JSValue* SFX_CALL cti_op_instanceof(CTI_ARGS); 184 static JSValue* SFX_CALL cti_op_mul(CTI_ARGS); 185 static JSValue* SFX_CALL cti_op_new_func(CTI_ARGS); 186 static VoidPtrPair SFX_CALL cti_op_call_JSFunction(CTI_ARGS); 187 static JSValue* SFX_CALL cti_op_call_NotJSFunction(CTI_ARGS); 188 static void SFX_CALL cti_op_create_arguments(CTI_ARGS); 189 static void SFX_CALL cti_op_tear_off_activation(CTI_ARGS); 190 static void SFX_CALL cti_op_tear_off_arguments(CTI_ARGS); 191 static void SFX_CALL cti_op_ret_profiler(CTI_ARGS); 192 static void SFX_CALL cti_op_ret_scopeChain(CTI_ARGS); 193 static JSValue* SFX_CALL cti_op_new_array(CTI_ARGS); 194 static JSValue* SFX_CALL cti_op_resolve(CTI_ARGS); 195 static JSValue* SFX_CALL cti_op_resolve_global(CTI_ARGS); 196 static VoidPtrPair SFX_CALL cti_op_construct_JSConstruct(CTI_ARGS); 197 static JSValue* SFX_CALL cti_op_construct_NotJSConstruct(CTI_ARGS); 198 static JSValue* SFX_CALL cti_op_get_by_val(CTI_ARGS); 199 static VoidPtrPair SFX_CALL cti_op_resolve_func(CTI_ARGS); 200 static JSValue* SFX_CALL cti_op_sub(CTI_ARGS); 201 static void SFX_CALL cti_op_put_by_val(CTI_ARGS); 202 static void SFX_CALL cti_op_put_by_val_array(CTI_ARGS); 203 static JSValue* SFX_CALL cti_op_lesseq(CTI_ARGS); 204 static int SFX_CALL cti_op_loop_if_true(CTI_ARGS); 205 static JSValue* SFX_CALL cti_op_resolve_base(CTI_ARGS); 206 static JSValue* SFX_CALL cti_op_negate(CTI_ARGS); 207 static JSValue* SFX_CALL cti_op_resolve_skip(CTI_ARGS); 208 static JSValue* SFX_CALL cti_op_div(CTI_ARGS); 209 static JSValue* SFX_CALL cti_op_pre_dec(CTI_ARGS); 210 static int SFX_CALL cti_op_jless(CTI_ARGS); 211 static JSValue* SFX_CALL cti_op_not(CTI_ARGS); 212 static int SFX_CALL cti_op_jtrue(CTI_ARGS); 213 static VoidPtrPair SFX_CALL cti_op_post_inc(CTI_ARGS); 214 static JSValue* SFX_CALL cti_op_eq(CTI_ARGS); 215 static JSValue* SFX_CALL cti_op_lshift(CTI_ARGS); 216 static JSValue* SFX_CALL cti_op_bitand(CTI_ARGS); 217 static JSValue* SFX_CALL cti_op_rshift(CTI_ARGS); 218 static JSValue* SFX_CALL cti_op_bitnot(CTI_ARGS); 219 static VoidPtrPair SFX_CALL cti_op_resolve_with_base(CTI_ARGS); 220 static JSValue* SFX_CALL cti_op_new_func_exp(CTI_ARGS); 221 static JSValue* SFX_CALL cti_op_mod(CTI_ARGS); 222 static JSValue* SFX_CALL cti_op_less(CTI_ARGS); 223 static JSValue* SFX_CALL cti_op_neq(CTI_ARGS); 224 static VoidPtrPair SFX_CALL cti_op_post_dec(CTI_ARGS); 225 static JSValue* SFX_CALL cti_op_urshift(CTI_ARGS); 226 static JSValue* SFX_CALL cti_op_bitxor(CTI_ARGS); 227 static JSValue* SFX_CALL cti_op_new_regexp(CTI_ARGS); 228 static JSValue* SFX_CALL cti_op_bitor(CTI_ARGS); 229 static JSValue* SFX_CALL cti_op_call_eval(CTI_ARGS); 230 static void* SFX_CALL cti_op_throw(CTI_ARGS); 231 static JSPropertyNameIterator* SFX_CALL cti_op_get_pnames(CTI_ARGS); 232 static JSValue* SFX_CALL cti_op_next_pname(CTI_ARGS); 233 static void SFX_CALL cti_op_push_scope(CTI_ARGS); 234 static void SFX_CALL cti_op_pop_scope(CTI_ARGS); 235 static JSValue* SFX_CALL cti_op_typeof(CTI_ARGS); 236 static JSValue* SFX_CALL cti_op_is_undefined(CTI_ARGS); 237 static JSValue* SFX_CALL cti_op_is_boolean(CTI_ARGS); 238 static JSValue* SFX_CALL cti_op_is_number(CTI_ARGS); 239 static JSValue* SFX_CALL cti_op_is_string(CTI_ARGS); 240 static JSValue* SFX_CALL cti_op_is_object(CTI_ARGS); 241 static JSValue* SFX_CALL cti_op_is_function(CTI_ARGS); 242 static JSValue* SFX_CALL cti_op_stricteq(CTI_ARGS); 243 static JSValue* SFX_CALL cti_op_nstricteq(CTI_ARGS); 244 static JSValue* SFX_CALL cti_op_to_jsnumber(CTI_ARGS); 245 static JSValue* SFX_CALL cti_op_in(CTI_ARGS); 246 static JSValue* SFX_CALL cti_op_push_new_scope(CTI_ARGS); 247 static void SFX_CALL cti_op_jmp_scopes(CTI_ARGS); 248 static void SFX_CALL cti_op_put_by_index(CTI_ARGS); 249 static void* SFX_CALL cti_op_switch_imm(CTI_ARGS); 250 static void* SFX_CALL cti_op_switch_char(CTI_ARGS); 251 static void* SFX_CALL cti_op_switch_string(CTI_ARGS); 252 static JSValue* SFX_CALL cti_op_del_by_val(CTI_ARGS); 253 static void SFX_CALL cti_op_put_getter(CTI_ARGS); 254 static void SFX_CALL cti_op_put_setter(CTI_ARGS); 255 static JSValue* SFX_CALL cti_op_new_error(CTI_ARGS); 256 static void SFX_CALL cti_op_debug(CTI_ARGS); 257 258 static void* SFX_CALL cti_vm_throw(CTI_ARGS); 259 static void* SFX_CALL cti_vm_compile(CTI_ARGS); 260 static JSValue* SFX_CALL cti_op_push_activation(CTI_ARGS); 241 261 242 262 #endif // ENABLE(CTI) -
trunk/JavaScriptCore/masm/X86Assembler.h
r37581 r37597 1082 1082 #endif 1083 1083 1084 #if USE(CTI_ARGUMENT) 1084 1085 void emitRestoreArgumentReference() 1085 1086 { 1087 #if USE(FAST_CALL_CTI_ARGUMENT) 1086 1088 movl_rr(X86::esp, X86::ecx); 1089 #else 1090 movl_rm(X86::esp, 0, X86::esp); 1091 #endif 1087 1092 } 1088 1093 1089 1094 void emitRestoreArgumentReferenceForTrampoline() 1090 1095 { 1096 #if USE(FAST_CALL_CTI_ARGUMENT) 1091 1097 movl_rr(X86::esp, X86::ecx); 1092 1098 addl_i32r(4, X86::ecx); 1093 } 1099 #endif 1100 } 1101 #else 1102 void emitRestoreArgumentReference() {} 1103 void emitRestoreArgumentReferenceForTrampoline() {} 1104 #endif 1094 1105 1095 1106 private: -
trunk/JavaScriptCore/wtf/Platform.h
r37581 r37597 365 365 #endif 366 366 367 // Use "fastcall" calling convention on MSVC and GCC > 4.0 368 #if COMPILER(MSVC) || (COMPILER(GCC) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 0))) 369 #define WTF_USE_FAST_CALL_CTI_ARGUMENT 1 370 #endif 371 372 #if COMPILER(MSVC) || USE(FAST_CALL_CTI_ARGUMENT) 373 #define WTF_USE_CTI_ARGUMENT 1 374 #endif 375 367 376 #endif /* WTF_Platform_h */
Note:
See TracChangeset
for help on using the changeset viewer.