Changeset 37581 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Oct 14, 2008, 1:21:19 AM (17 years ago)
Author:
[email protected]
Message:

2008-10-14 Maciej Stachowiak <[email protected]>

Reviewed by Cameron Zwarich.


  • always use CTI_ARGUMENTS and CTI_ARGUMENTS_FASTCALL


This is a small regression for GCC 4.0, but simplifies the code
for future improvements and lets us focus on GCC 4.2+ and MSVC.

  • VM/CTI.cpp:
  • VM/CTI.h:
  • VM/Machine.cpp: (JSC::Machine::cti_op_convert_this): (JSC::Machine::cti_op_end): (JSC::Machine::cti_op_add): (JSC::Machine::cti_op_pre_inc): (JSC::Machine::cti_timeout_check): (JSC::Machine::cti_register_file_check): (JSC::Machine::cti_op_loop_if_less): (JSC::Machine::cti_op_loop_if_lesseq): (JSC::Machine::cti_op_new_object): (JSC::Machine::cti_op_put_by_id): (JSC::Machine::cti_op_put_by_id_second): (JSC::Machine::cti_op_put_by_id_generic): (JSC::Machine::cti_op_put_by_id_fail): (JSC::Machine::cti_op_get_by_id): (JSC::Machine::cti_op_get_by_id_second): (JSC::Machine::cti_op_get_by_id_generic): (JSC::Machine::cti_op_get_by_id_fail): (JSC::Machine::cti_op_instanceof): (JSC::Machine::cti_op_del_by_id): (JSC::Machine::cti_op_mul): (JSC::Machine::cti_op_new_func): (JSC::Machine::cti_op_call_JSFunction): (JSC::Machine::cti_vm_compile): (JSC::Machine::cti_op_push_activation): (JSC::Machine::cti_op_call_NotJSFunction): (JSC::Machine::cti_op_create_arguments): (JSC::Machine::cti_op_tear_off_activation): (JSC::Machine::cti_op_tear_off_arguments): (JSC::Machine::cti_op_ret_profiler): (JSC::Machine::cti_op_ret_scopeChain): (JSC::Machine::cti_op_new_array): (JSC::Machine::cti_op_resolve): (JSC::Machine::cti_op_construct_JSConstruct): (JSC::Machine::cti_op_construct_NotJSConstruct): (JSC::Machine::cti_op_get_by_val): (JSC::Machine::cti_op_resolve_func): (JSC::Machine::cti_op_sub): (JSC::Machine::cti_op_put_by_val): (JSC::Machine::cti_op_put_by_val_array): (JSC::Machine::cti_op_lesseq): (JSC::Machine::cti_op_loop_if_true): (JSC::Machine::cti_op_negate): (JSC::Machine::cti_op_resolve_base): (JSC::Machine::cti_op_resolve_skip): (JSC::Machine::cti_op_resolve_global): (JSC::Machine::cti_op_div): (JSC::Machine::cti_op_pre_dec): (JSC::Machine::cti_op_jless): (JSC::Machine::cti_op_not): (JSC::Machine::cti_op_jtrue): (JSC::Machine::cti_op_post_inc): (JSC::Machine::cti_op_eq): (JSC::Machine::cti_op_lshift): (JSC::Machine::cti_op_bitand): (JSC::Machine::cti_op_rshift): (JSC::Machine::cti_op_bitnot): (JSC::Machine::cti_op_resolve_with_base): (JSC::Machine::cti_op_new_func_exp): (JSC::Machine::cti_op_mod): (JSC::Machine::cti_op_less): (JSC::Machine::cti_op_neq): (JSC::Machine::cti_op_post_dec): (JSC::Machine::cti_op_urshift): (JSC::Machine::cti_op_bitxor): (JSC::Machine::cti_op_new_regexp): (JSC::Machine::cti_op_bitor): (JSC::Machine::cti_op_call_eval): (JSC::Machine::cti_op_throw): (JSC::Machine::cti_op_get_pnames): (JSC::Machine::cti_op_next_pname): (JSC::Machine::cti_op_push_scope): (JSC::Machine::cti_op_pop_scope): (JSC::Machine::cti_op_typeof): (JSC::Machine::cti_op_is_undefined): (JSC::Machine::cti_op_is_boolean): (JSC::Machine::cti_op_is_number): (JSC::Machine::cti_op_is_string): (JSC::Machine::cti_op_is_object): (JSC::Machine::cti_op_is_function): (JSC::Machine::cti_op_stricteq): (JSC::Machine::cti_op_nstricteq): (JSC::Machine::cti_op_to_jsnumber): (JSC::Machine::cti_op_in): (JSC::Machine::cti_op_push_new_scope): (JSC::Machine::cti_op_jmp_scopes): (JSC::Machine::cti_op_put_by_index): (JSC::Machine::cti_op_switch_imm): (JSC::Machine::cti_op_switch_char): (JSC::Machine::cti_op_switch_string): (JSC::Machine::cti_op_del_by_val): (JSC::Machine::cti_op_put_getter): (JSC::Machine::cti_op_put_setter): (JSC::Machine::cti_op_new_error): (JSC::Machine::cti_op_debug): (JSC::Machine::cti_vm_throw):
  • VM/Machine.h:
  • masm/X86Assembler.h: (JSC::X86Assembler::emitRestoreArgumentReference): (JSC::X86Assembler::emitRestoreArgumentReferenceForTrampoline):
  • wtf/Platform.h:
Location:
trunk/JavaScriptCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r37576 r37581  
     12008-10-14  Maciej Stachowiak  <[email protected]>
     2
     3        Reviewed by Cameron Zwarich.
     4       
     5        - always use CTI_ARGUMENTS and CTI_ARGUMENTS_FASTCALL
     6       
     7        This is a small regression for GCC 4.0, but simplifies the code
     8        for future improvements and lets us focus on GCC 4.2+ and MSVC.
     9
     10        * VM/CTI.cpp:
     11        * VM/CTI.h:
     12        * VM/Machine.cpp:
     13        (JSC::Machine::cti_op_convert_this):
     14        (JSC::Machine::cti_op_end):
     15        (JSC::Machine::cti_op_add):
     16        (JSC::Machine::cti_op_pre_inc):
     17        (JSC::Machine::cti_timeout_check):
     18        (JSC::Machine::cti_register_file_check):
     19        (JSC::Machine::cti_op_loop_if_less):
     20        (JSC::Machine::cti_op_loop_if_lesseq):
     21        (JSC::Machine::cti_op_new_object):
     22        (JSC::Machine::cti_op_put_by_id):
     23        (JSC::Machine::cti_op_put_by_id_second):
     24        (JSC::Machine::cti_op_put_by_id_generic):
     25        (JSC::Machine::cti_op_put_by_id_fail):
     26        (JSC::Machine::cti_op_get_by_id):
     27        (JSC::Machine::cti_op_get_by_id_second):
     28        (JSC::Machine::cti_op_get_by_id_generic):
     29        (JSC::Machine::cti_op_get_by_id_fail):
     30        (JSC::Machine::cti_op_instanceof):
     31        (JSC::Machine::cti_op_del_by_id):
     32        (JSC::Machine::cti_op_mul):
     33        (JSC::Machine::cti_op_new_func):
     34        (JSC::Machine::cti_op_call_JSFunction):
     35        (JSC::Machine::cti_vm_compile):
     36        (JSC::Machine::cti_op_push_activation):
     37        (JSC::Machine::cti_op_call_NotJSFunction):
     38        (JSC::Machine::cti_op_create_arguments):
     39        (JSC::Machine::cti_op_tear_off_activation):
     40        (JSC::Machine::cti_op_tear_off_arguments):
     41        (JSC::Machine::cti_op_ret_profiler):
     42        (JSC::Machine::cti_op_ret_scopeChain):
     43        (JSC::Machine::cti_op_new_array):
     44        (JSC::Machine::cti_op_resolve):
     45        (JSC::Machine::cti_op_construct_JSConstruct):
     46        (JSC::Machine::cti_op_construct_NotJSConstruct):
     47        (JSC::Machine::cti_op_get_by_val):
     48        (JSC::Machine::cti_op_resolve_func):
     49        (JSC::Machine::cti_op_sub):
     50        (JSC::Machine::cti_op_put_by_val):
     51        (JSC::Machine::cti_op_put_by_val_array):
     52        (JSC::Machine::cti_op_lesseq):
     53        (JSC::Machine::cti_op_loop_if_true):
     54        (JSC::Machine::cti_op_negate):
     55        (JSC::Machine::cti_op_resolve_base):
     56        (JSC::Machine::cti_op_resolve_skip):
     57        (JSC::Machine::cti_op_resolve_global):
     58        (JSC::Machine::cti_op_div):
     59        (JSC::Machine::cti_op_pre_dec):
     60        (JSC::Machine::cti_op_jless):
     61        (JSC::Machine::cti_op_not):
     62        (JSC::Machine::cti_op_jtrue):
     63        (JSC::Machine::cti_op_post_inc):
     64        (JSC::Machine::cti_op_eq):
     65        (JSC::Machine::cti_op_lshift):
     66        (JSC::Machine::cti_op_bitand):
     67        (JSC::Machine::cti_op_rshift):
     68        (JSC::Machine::cti_op_bitnot):
     69        (JSC::Machine::cti_op_resolve_with_base):
     70        (JSC::Machine::cti_op_new_func_exp):
     71        (JSC::Machine::cti_op_mod):
     72        (JSC::Machine::cti_op_less):
     73        (JSC::Machine::cti_op_neq):
     74        (JSC::Machine::cti_op_post_dec):
     75        (JSC::Machine::cti_op_urshift):
     76        (JSC::Machine::cti_op_bitxor):
     77        (JSC::Machine::cti_op_new_regexp):
     78        (JSC::Machine::cti_op_bitor):
     79        (JSC::Machine::cti_op_call_eval):
     80        (JSC::Machine::cti_op_throw):
     81        (JSC::Machine::cti_op_get_pnames):
     82        (JSC::Machine::cti_op_next_pname):
     83        (JSC::Machine::cti_op_push_scope):
     84        (JSC::Machine::cti_op_pop_scope):
     85        (JSC::Machine::cti_op_typeof):
     86        (JSC::Machine::cti_op_is_undefined):
     87        (JSC::Machine::cti_op_is_boolean):
     88        (JSC::Machine::cti_op_is_number):
     89        (JSC::Machine::cti_op_is_string):
     90        (JSC::Machine::cti_op_is_object):
     91        (JSC::Machine::cti_op_is_function):
     92        (JSC::Machine::cti_op_stricteq):
     93        (JSC::Machine::cti_op_nstricteq):
     94        (JSC::Machine::cti_op_to_jsnumber):
     95        (JSC::Machine::cti_op_in):
     96        (JSC::Machine::cti_op_push_new_scope):
     97        (JSC::Machine::cti_op_jmp_scopes):
     98        (JSC::Machine::cti_op_put_by_index):
     99        (JSC::Machine::cti_op_switch_imm):
     100        (JSC::Machine::cti_op_switch_char):
     101        (JSC::Machine::cti_op_switch_string):
     102        (JSC::Machine::cti_op_del_by_val):
     103        (JSC::Machine::cti_op_put_getter):
     104        (JSC::Machine::cti_op_put_setter):
     105        (JSC::Machine::cti_op_new_error):
     106        (JSC::Machine::cti_op_debug):
     107        (JSC::Machine::cti_vm_throw):
     108        * VM/Machine.h:
     109        * masm/X86Assembler.h:
     110        (JSC::X86Assembler::emitRestoreArgumentReference):
     111        (JSC::X86Assembler::emitRestoreArgumentReferenceForTrampoline):
     112        * wtf/Platform.h:
     113
    11142008-10-13  Maciej Stachowiak  <[email protected]>
    2115
  • trunk/JavaScriptCore/VM/CTI.cpp

    r37570 r37581  
    109109".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
    110110SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
    111 #if USE(CTI_ARGUMENT)
    112 #if USE(FAST_CALL_CTI_ARGUMENT)
    113111    "movl %esp, %ecx" "\n"
    114 #else
    115     "movl %esp, 0(%esp)" "\n"
    116 #endif
    117112    "call " SYMBOL_STRING(_ZN3JSC7Machine12cti_vm_throwEPPv) "\n"
    118 #else
    119     "call " SYMBOL_STRING(_ZN3JSC7Machine12cti_vm_throwEPv) "\n"
    120 #endif
    121113    "addl $0x24, %esp" "\n"
    122114    "popl %edi" "\n"
  • trunk/JavaScriptCore/VM/CTI.h

    r37457 r37581  
    4545#define CTI_ARGS_profilerReference 0x10
    4646#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])
    8282
    8383namespace JSC {
     
    9696    struct OperandTypes;
    9797
    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);
     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);
    104104
    105105    struct CallRecord {
     
    239239        static const int repatchGetByIdDefaultOffset = 256;
    240240
    241 #if USE(FAST_CALL_CTI_ARGUMENT)
    242241        static const int ctiArgumentInitSize = 2;
    243 #elif USE(CTI_ARGUMENT)
    244         static const int ctiArgumentInitSize = 4;
    245 #else
    246         static const int ctiArgumentInitSize = 0;
    247 #endif
     242
    248243        // These architecture specific value are used to enable repatching - see comment on op_put_by_id.
    249244        static const int repatchOffsetPutByIdStructureID = 19;
  • trunk/JavaScriptCore/VM/Machine.cpp

    r37576 r37581  
    42424242    } while (0)
    42434243
    4244 JSValue* Machine::cti_op_convert_this(CTI_ARGS)
     4244JSValue* Machine::cti_op_convert_this(void** args)
    42454245{
    42464246    JSValue* v1 = ARG_src1;
     
    42524252}
    42534253
    4254 void Machine::cti_op_end(CTI_ARGS)
     4254void Machine::cti_op_end(void** args)
    42554255{
    42564256    ScopeChainNode* scopeChain = ARG_callFrame->scopeChain();
     
    42594259}
    42604260
    4261 JSValue* Machine::cti_op_add(CTI_ARGS)
     4261JSValue* Machine::cti_op_add(void** args)
    42624262{
    42634263    JSValue* v1 = ARG_src1;
     
    43024302}
    43034303
    4304 JSValue* Machine::cti_op_pre_inc(CTI_ARGS)
     4304JSValue* Machine::cti_op_pre_inc(void** args)
    43054305{
    43064306    JSValue* v = ARG_src1;
     
    43124312}
    43134313
    4314 void Machine::cti_timeout_check(CTI_ARGS)
     4314void Machine::cti_timeout_check(void** args)
    43154315{
    43164316    if (ARG_globalData->machine->checkTimeout(ARG_callFrame->dynamicGlobalObject())) {
     
    43204320}
    43214321
    4322 void Machine::cti_register_file_check(CTI_ARGS)
     4322void Machine::cti_register_file_check(void** args)
    43234323{
    43244324    CallFrame* callFrame = ARG_callFrame;
     
    43364336}
    43374337
    4338 int Machine::cti_op_loop_if_less(CTI_ARGS)
     4338int Machine::cti_op_loop_if_less(void** args)
    43394339{
    43404340    JSValue* src1 = ARG_src1;
     
    43474347}
    43484348
    4349 int Machine::cti_op_loop_if_lesseq(CTI_ARGS)
     4349int Machine::cti_op_loop_if_lesseq(void** args)
    43504350{
    43514351    JSValue* src1 = ARG_src1;
     
    43584358}
    43594359
    4360 JSValue* Machine::cti_op_new_object(CTI_ARGS)
     4360JSValue* Machine::cti_op_new_object(void** args)
    43614361{
    43624362    return constructEmptyObject(ARG_callFrame);;
    43634363}
    43644364
    4365 void Machine::cti_op_put_by_id(CTI_ARGS)
     4365void Machine::cti_op_put_by_id(void** args)
    43664366{
    43674367    CallFrame* callFrame = ARG_callFrame;
     
    43764376}
    43774377
    4378 void Machine::cti_op_put_by_id_second(CTI_ARGS)
     4378void Machine::cti_op_put_by_id_second(void** args)
    43794379{
    43804380    PutPropertySlot slot;
     
    43844384}
    43854385
    4386 void Machine::cti_op_put_by_id_generic(CTI_ARGS)
     4386void Machine::cti_op_put_by_id_generic(void** args)
    43874387{
    43884388    PutPropertySlot slot;
     
    43914391}
    43924392
    4393 void Machine::cti_op_put_by_id_fail(CTI_ARGS)
     4393void Machine::cti_op_put_by_id_fail(void** args)
    43944394{
    43954395    CallFrame* callFrame = ARG_callFrame;
     
    44054405}
    44064406
    4407 JSValue* Machine::cti_op_get_by_id(CTI_ARGS)
     4407JSValue* Machine::cti_op_get_by_id(void** args)
    44084408{
    44094409    CallFrame* callFrame = ARG_callFrame;
     
    44204420}
    44214421
    4422 JSValue* Machine::cti_op_get_by_id_second(CTI_ARGS)
     4422JSValue* Machine::cti_op_get_by_id_second(void** args)
    44234423{
    44244424    CallFrame* callFrame = ARG_callFrame;
     
    44354435}
    44364436
    4437 JSValue* Machine::cti_op_get_by_id_generic(CTI_ARGS)
     4437JSValue* Machine::cti_op_get_by_id_generic(void** args)
    44384438{
    44394439    CallFrame* callFrame = ARG_callFrame;
     
    44484448}
    44494449
    4450 JSValue* Machine::cti_op_get_by_id_fail(CTI_ARGS)
     4450JSValue* Machine::cti_op_get_by_id_fail(void** args)
    44514451{
    44524452    CallFrame* callFrame = ARG_callFrame;
     
    44644464}
    44654465
    4466 JSValue* Machine::cti_op_instanceof(CTI_ARGS)
     4466JSValue* Machine::cti_op_instanceof(void** args)
    44674467{
    44684468    CallFrame* callFrame = ARG_callFrame;
     
    45054505}
    45064506
    4507 JSValue* Machine::cti_op_del_by_id(CTI_ARGS)
     4507JSValue* Machine::cti_op_del_by_id(void** args)
    45084508{
    45094509    CallFrame* callFrame = ARG_callFrame;
     
    45174517}
    45184518
    4519 JSValue* Machine::cti_op_mul(CTI_ARGS)
     4519JSValue* Machine::cti_op_mul(void** args)
    45204520{
    45214521    JSValue* src1 = ARG_src1;
     
    45334533}
    45344534
    4535 JSValue* Machine::cti_op_new_func(CTI_ARGS)
     4535JSValue* Machine::cti_op_new_func(void** args)
    45364536{
    45374537    return ARG_func1->makeFunction(ARG_callFrame, ARG_callFrame->scopeChain());
    45384538}
    45394539
    4540 VoidPtrPair Machine::cti_op_call_JSFunction(CTI_ARGS)
     4540VoidPtrPair Machine::cti_op_call_JSFunction(void** args)
    45414541{
    45424542#ifndef NDEBUG
     
    45874587}
    45884588
    4589 void* Machine::cti_vm_compile(CTI_ARGS)
     4589void* Machine::cti_vm_compile(void** args)
    45904590{
    45914591    CodeBlock* codeBlock = ARG_callFrame->codeBlock();
     
    45954595}
    45964596
    4597 JSValue* Machine::cti_op_push_activation(CTI_ARGS)
     4597JSValue* Machine::cti_op_push_activation(void** args)
    45984598{
    45994599    JSActivation* activation = new (ARG_globalData) JSActivation(ARG_callFrame, static_cast<FunctionBodyNode*>(ARG_callFrame->codeBlock()->ownerNode));
     
    46024602}
    46034603
    4604 JSValue* Machine::cti_op_call_NotJSFunction(CTI_ARGS)
     4604JSValue* Machine::cti_op_call_NotJSFunction(void** args)
    46054605{
    46064606    JSValue* funcVal = ARG_src1;
     
    46444644}
    46454645
    4646 void Machine::cti_op_create_arguments(CTI_ARGS)
     4646void Machine::cti_op_create_arguments(void** args)
    46474647{
    46484648    Arguments* arguments = new (ARG_globalData) Arguments(ARG_callFrame);
     
    46514651}
    46524652
    4653 void Machine::cti_op_tear_off_activation(CTI_ARGS)
     4653void Machine::cti_op_tear_off_activation(void** args)
    46544654{
    46554655    ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain);
     
    46584658}
    46594659
    4660 void Machine::cti_op_tear_off_arguments(CTI_ARGS)
     4660void Machine::cti_op_tear_off_arguments(void** args)
    46614661{
    46624662    ASSERT(ARG_callFrame->codeBlock()->usesArguments && !ARG_callFrame->codeBlock()->needsFullScopeChain);
     
    46644664}
    46654665
    4666 void Machine::cti_op_ret_profiler(CTI_ARGS)
     4666void Machine::cti_op_ret_profiler(void** args)
    46674667{
    46684668    ASSERT(*ARG_profilerReference);
     
    46704670}
    46714671
    4672 void Machine::cti_op_ret_scopeChain(CTI_ARGS)
     4672void Machine::cti_op_ret_scopeChain(void** args)
    46734673{
    46744674    ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain);
     
    46764676}
    46774677
    4678 JSValue* Machine::cti_op_new_array(CTI_ARGS)
     4678JSValue* Machine::cti_op_new_array(void** args)
    46794679{
    46804680    ArgList argList(ARG_registers1, ARG_int2);
     
    46824682}
    46834683
    4684 JSValue* Machine::cti_op_resolve(CTI_ARGS)
     4684JSValue* Machine::cti_op_resolve(void** args)
    46854685{
    46864686    CallFrame* callFrame = ARG_callFrame;
     
    47094709}
    47104710
    4711 VoidPtrPair Machine::cti_op_construct_JSConstruct(CTI_ARGS)
     4711VoidPtrPair Machine::cti_op_construct_JSConstruct(void** args)
    47124712{
    47134713    CallFrame* callFrame = ARG_callFrame;
     
    47724772}
    47734773
    4774 JSValue* Machine::cti_op_construct_NotJSConstruct(CTI_ARGS)
     4774JSValue* Machine::cti_op_construct_NotJSConstruct(void** args)
    47754775{
    47764776    CallFrame* callFrame = ARG_callFrame;
     
    48084808}
    48094809
    4810 JSValue* Machine::cti_op_get_by_val(CTI_ARGS)
     4810JSValue* Machine::cti_op_get_by_val(void** args)
    48114811{
    48124812    CallFrame* callFrame = ARG_callFrame;
     
    48404840}
    48414841
    4842 VoidPtrPair Machine::cti_op_resolve_func(CTI_ARGS)
     4842VoidPtrPair Machine::cti_op_resolve_func(void** args)
    48434843{
    48444844    CallFrame* callFrame = ARG_callFrame;
     
    48824882}
    48834883
    4884 JSValue* Machine::cti_op_sub(CTI_ARGS)
     4884JSValue* Machine::cti_op_sub(void** args)
    48854885{
    48864886    JSValue* src1 = ARG_src1;
     
    48984898}
    48994899
    4900 void Machine::cti_op_put_by_val(CTI_ARGS)
     4900void Machine::cti_op_put_by_val(void** args)
    49014901{
    49024902    CallFrame* callFrame = ARG_callFrame;
     
    49304930}
    49314931
    4932 void Machine::cti_op_put_by_val_array(CTI_ARGS)
     4932void Machine::cti_op_put_by_val_array(void** args)
    49334933{
    49344934    CallFrame* callFrame = ARG_callFrame;
     
    49544954}
    49554955
    4956 JSValue* Machine::cti_op_lesseq(CTI_ARGS)
     4956JSValue* Machine::cti_op_lesseq(void** args)
    49574957{
    49584958    CallFrame* callFrame = ARG_callFrame;
     
    49624962}
    49634963
    4964 int Machine::cti_op_loop_if_true(CTI_ARGS)
     4964int Machine::cti_op_loop_if_true(void** args)
    49654965{
    49664966    JSValue* src1 = ARG_src1;
     
    49734973}
    49744974
    4975 JSValue* Machine::cti_op_negate(CTI_ARGS)
     4975JSValue* Machine::cti_op_negate(void** args)
    49764976{
    49774977    JSValue* src = ARG_src1;
     
    49874987}
    49884988
    4989 JSValue* Machine::cti_op_resolve_base(CTI_ARGS)
     4989JSValue* Machine::cti_op_resolve_base(void** args)
    49904990{
    49914991    return inlineResolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame->scopeChain());
    49924992}
    49934993
    4994 JSValue* Machine::cti_op_resolve_skip(CTI_ARGS)
     4994JSValue* Machine::cti_op_resolve_skip(void** args)
    49954995{
    49964996    CallFrame* callFrame = ARG_callFrame;
     
    50245024}
    50255025
    5026 JSValue* Machine::cti_op_resolve_global(CTI_ARGS)
     5026JSValue* Machine::cti_op_resolve_global(void** args)
    50275027{
    50285028    CallFrame* callFrame = ARG_callFrame;
     
    50525052}
    50535053
    5054 JSValue* Machine::cti_op_div(CTI_ARGS)
     5054JSValue* Machine::cti_op_div(void** args)
    50555055{
    50565056    JSValue* src1 = ARG_src1;
     
    50685068}
    50695069
    5070 JSValue* Machine::cti_op_pre_dec(CTI_ARGS)
     5070JSValue* Machine::cti_op_pre_dec(void** args)
    50715071{
    50725072    JSValue* v = ARG_src1;
     
    50785078}
    50795079
    5080 int Machine::cti_op_jless(CTI_ARGS)
     5080int Machine::cti_op_jless(void** args)
    50815081{
    50825082    JSValue* src1 = ARG_src1;
     
    50895089}
    50905090
    5091 JSValue* Machine::cti_op_not(CTI_ARGS)
     5091JSValue* Machine::cti_op_not(void** args)
    50925092{
    50935093    JSValue* src = ARG_src1;
     
    51005100}
    51015101
    5102 int SFX_CALL Machine::cti_op_jtrue(CTI_ARGS)
     5102int SFX_CALL Machine::cti_op_jtrue(void** args)
    51035103{
    51045104    JSValue* src1 = ARG_src1;
     
    51115111}
    51125112
    5113 VoidPtrPair Machine::cti_op_post_inc(CTI_ARGS)
     5113VoidPtrPair Machine::cti_op_post_inc(void** args)
    51145114{
    51155115    JSValue* v = ARG_src1;
     
    51245124}
    51255125
    5126 JSValue* Machine::cti_op_eq(CTI_ARGS)
     5126JSValue* Machine::cti_op_eq(void** args)
    51275127{
    51285128    JSValue* src1 = ARG_src1;
     
    51375137}
    51385138
    5139 JSValue* Machine::cti_op_lshift(CTI_ARGS)
     5139JSValue* Machine::cti_op_lshift(void** args)
    51405140{
    51415141    JSValue* val = ARG_src1;
     
    51555155}
    51565156
    5157 JSValue* Machine::cti_op_bitand(CTI_ARGS)
     5157JSValue* Machine::cti_op_bitand(void** args)
    51585158{
    51595159    JSValue* src1 = ARG_src1;
     
    51715171}
    51725172
    5173 JSValue* Machine::cti_op_rshift(CTI_ARGS)
     5173JSValue* Machine::cti_op_rshift(void** args)
    51745174{
    51755175    JSValue* val = ARG_src1;
     
    51895189}
    51905190
    5191 JSValue* Machine::cti_op_bitnot(CTI_ARGS)
     5191JSValue* Machine::cti_op_bitnot(void** args)
    51925192{
    51935193    JSValue* src = ARG_src1;
     
    52035203}
    52045204
    5205 VoidPtrPair Machine::cti_op_resolve_with_base(CTI_ARGS)
     5205VoidPtrPair Machine::cti_op_resolve_with_base(void** args)
    52065206{
    52075207    CallFrame* callFrame = ARG_callFrame;
     
    52375237}
    52385238
    5239 JSValue* Machine::cti_op_new_func_exp(CTI_ARGS)
     5239JSValue* Machine::cti_op_new_func_exp(void** args)
    52405240{
    52415241    return ARG_funcexp1->makeFunction(ARG_callFrame, ARG_callFrame->scopeChain());
    52425242}
    52435243
    5244 JSValue* Machine::cti_op_mod(CTI_ARGS)
     5244JSValue* Machine::cti_op_mod(void** args)
    52455245{
    52465246    JSValue* dividendValue = ARG_src1;
     
    52545254}
    52555255
    5256 JSValue* Machine::cti_op_less(CTI_ARGS)
     5256JSValue* Machine::cti_op_less(void** args)
    52575257{
    52585258    CallFrame* callFrame = ARG_callFrame;
     
    52625262}
    52635263
    5264 JSValue* Machine::cti_op_neq(CTI_ARGS)
     5264JSValue* Machine::cti_op_neq(void** args)
    52655265{
    52665266    JSValue* src1 = ARG_src1;
     
    52755275}
    52765276
    5277 VoidPtrPair Machine::cti_op_post_dec(CTI_ARGS)
     5277VoidPtrPair Machine::cti_op_post_dec(void** args)
    52785278{
    52795279    JSValue* v = ARG_src1;
     
    52885288}
    52895289
    5290 JSValue* Machine::cti_op_urshift(CTI_ARGS)
     5290JSValue* Machine::cti_op_urshift(void** args)
    52915291{
    52925292    JSValue* val = ARG_src1;
     
    53045304}
    53055305
    5306 JSValue* Machine::cti_op_bitxor(CTI_ARGS)
     5306JSValue* Machine::cti_op_bitxor(void** args)
    53075307{
    53085308    JSValue* src1 = ARG_src1;
     
    53165316}
    53175317
    5318 JSValue* Machine::cti_op_new_regexp(CTI_ARGS)
     5318JSValue* Machine::cti_op_new_regexp(void** args)
    53195319{
    53205320    return new (ARG_globalData) RegExpObject(ARG_callFrame->lexicalGlobalObject()->regExpStructure(), ARG_regexp1);
    53215321}
    53225322
    5323 JSValue* Machine::cti_op_bitor(CTI_ARGS)
     5323JSValue* Machine::cti_op_bitor(void** args)
    53245324{
    53255325    JSValue* src1 = ARG_src1;
     
    53335333}
    53345334
    5335 JSValue* Machine::cti_op_call_eval(CTI_ARGS)
     5335JSValue* Machine::cti_op_call_eval(void** args)
    53365336{
    53375337    CallFrame* callFrame = ARG_callFrame;
     
    53585358}
    53595359
    5360 void* Machine::cti_op_throw(CTI_ARGS)
     5360void* Machine::cti_op_throw(void** args)
    53615361{
    53625362    CallFrame* callFrame = ARG_callFrame;
     
    53835383}
    53845384
    5385 JSPropertyNameIterator* Machine::cti_op_get_pnames(CTI_ARGS)
     5385JSPropertyNameIterator* Machine::cti_op_get_pnames(void** args)
    53865386{
    53875387    return JSPropertyNameIterator::create(ARG_callFrame, ARG_src1);
    53885388}
    53895389
    5390 JSValue* Machine::cti_op_next_pname(CTI_ARGS)
     5390JSValue* Machine::cti_op_next_pname(void** args)
    53915391{
    53925392    JSPropertyNameIterator* it = ARG_pni1;
     
    53975397}
    53985398
    5399 void Machine::cti_op_push_scope(CTI_ARGS)
     5399void Machine::cti_op_push_scope(void** args)
    54005400{
    54015401    JSObject* o = ARG_src1->toObject(ARG_callFrame);
     
    54045404}
    54055405
    5406 void Machine::cti_op_pop_scope(CTI_ARGS)
     5406void Machine::cti_op_pop_scope(void** args)
    54075407{
    54085408    ARG_callFrame->setScopeChain(ARG_callFrame->scopeChain()->pop());
    54095409}
    54105410
    5411 JSValue* Machine::cti_op_typeof(CTI_ARGS)
     5411JSValue* Machine::cti_op_typeof(void** args)
    54125412{
    54135413    return jsTypeStringForValue(ARG_callFrame, ARG_src1);
    54145414}
    54155415
    5416 JSValue* Machine::cti_op_is_undefined(CTI_ARGS)
     5416JSValue* Machine::cti_op_is_undefined(void** args)
    54175417{
    54185418    JSValue* v = ARG_src1;
     
    54205420}
    54215421
    5422 JSValue* Machine::cti_op_is_boolean(CTI_ARGS)
     5422JSValue* Machine::cti_op_is_boolean(void** args)
    54235423{
    54245424    return jsBoolean(ARG_src1->isBoolean());
    54255425}
    54265426
    5427 JSValue* Machine::cti_op_is_number(CTI_ARGS)
     5427JSValue* Machine::cti_op_is_number(void** args)
    54285428{
    54295429    return jsBoolean(ARG_src1->isNumber());
    54305430}
    54315431
    5432 JSValue* Machine::cti_op_is_string(CTI_ARGS)
     5432JSValue* Machine::cti_op_is_string(void** args)
    54335433{
    54345434    return jsBoolean(ARG_globalData->machine->isJSString(ARG_src1));
    54355435}
    54365436
    5437 JSValue* Machine::cti_op_is_object(CTI_ARGS)
     5437JSValue* Machine::cti_op_is_object(void** args)
    54385438{
    54395439    return jsBoolean(jsIsObjectType(ARG_src1));
    54405440}
    54415441
    5442 JSValue* Machine::cti_op_is_function(CTI_ARGS)
     5442JSValue* Machine::cti_op_is_function(void** args)
    54435443{
    54445444    return jsBoolean(jsIsFunctionType(ARG_src1));
    54455445}
    54465446
    5447 JSValue* Machine::cti_op_stricteq(CTI_ARGS)
     5447JSValue* Machine::cti_op_stricteq(void** args)
    54485448{
    54495449    JSValue* src1 = ARG_src1;
     
    54575457}
    54585458
    5459 JSValue* Machine::cti_op_nstricteq(CTI_ARGS)
     5459JSValue* Machine::cti_op_nstricteq(void** args)
    54605460{
    54615461    JSValue* src1 = ARG_src1;
     
    54695469}
    54705470
    5471 JSValue* Machine::cti_op_to_jsnumber(CTI_ARGS)
     5471JSValue* Machine::cti_op_to_jsnumber(void** args)
    54725472{
    54735473    JSValue* src = ARG_src1;
     
    54795479}
    54805480
    5481 JSValue* Machine::cti_op_in(CTI_ARGS)
     5481JSValue* Machine::cti_op_in(void** args)
    54825482{
    54835483    CallFrame* callFrame = ARG_callFrame;
     
    55055505}
    55065506
    5507 JSValue* Machine::cti_op_push_new_scope(CTI_ARGS)
     5507JSValue* Machine::cti_op_push_new_scope(void** args)
    55085508{
    55095509    JSObject* scope = new (ARG_globalData) JSStaticScopeObject(ARG_callFrame, *ARG_id1, ARG_src2, DontDelete);
     
    55145514}
    55155515
    5516 void Machine::cti_op_jmp_scopes(CTI_ARGS)
     5516void Machine::cti_op_jmp_scopes(void** args)
    55175517{
    55185518    unsigned count = ARG_int1;
     
    55255525}
    55265526
    5527 void Machine::cti_op_put_by_index(CTI_ARGS)
     5527void Machine::cti_op_put_by_index(void** args)
    55285528{
    55295529    CallFrame* callFrame = ARG_callFrame;
     
    55335533}
    55345534
    5535 void* Machine::cti_op_switch_imm(CTI_ARGS)
     5535void* Machine::cti_op_switch_imm(void** args)
    55365536{
    55375537    JSValue* scrutinee = ARG_src1;
     
    55485548}
    55495549
    5550 void* Machine::cti_op_switch_char(CTI_ARGS)
     5550void* Machine::cti_op_switch_char(void** args)
    55515551{
    55525552    JSValue* scrutinee = ARG_src1;
     
    55665566}
    55675567
    5568 void* Machine::cti_op_switch_string(CTI_ARGS)
     5568void* Machine::cti_op_switch_string(void** args)
    55695569{
    55705570    JSValue* scrutinee = ARG_src1;
     
    55835583}
    55845584
    5585 JSValue* Machine::cti_op_del_by_val(CTI_ARGS)
     5585JSValue* Machine::cti_op_del_by_val(void** args)
    55865586{
    55875587    CallFrame* callFrame = ARG_callFrame;
     
    56065606}
    56075607
    5608 void Machine::cti_op_put_getter(CTI_ARGS)
     5608void Machine::cti_op_put_getter(void** args)
    56095609{
    56105610    CallFrame* callFrame = ARG_callFrame;
     
    56175617}
    56185618
    5619 void Machine::cti_op_put_setter(CTI_ARGS)
     5619void Machine::cti_op_put_setter(void** args)
    56205620{
    56215621    CallFrame* callFrame = ARG_callFrame;
     
    56285628}
    56295629
    5630 JSValue* Machine::cti_op_new_error(CTI_ARGS)
     5630JSValue* Machine::cti_op_new_error(void** args)
    56315631{
    56325632    CallFrame* callFrame = ARG_callFrame;
     
    56395639}
    56405640
    5641 void Machine::cti_op_debug(CTI_ARGS)
     5641void Machine::cti_op_debug(void** args)
    56425642{
    56435643    CallFrame* callFrame = ARG_callFrame;
     
    56505650}
    56515651
    5652 void* Machine::cti_vm_throw(CTI_ARGS)
     5652void* Machine::cti_vm_throw(void** args)
    56535653{
    56545654    CallFrame* callFrame = ARG_callFrame;
  • trunk/JavaScriptCore/VM/Machine.h

    r37570 r37581  
    5454#if ENABLE(CTI)
    5555
    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 
    6656#if COMPILER(MSVC)
    6757#define SFX_CALL __fastcall
     
    7060#else
    7161#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 
    8262#endif
    8363
     
    162142#if ENABLE(CTI)
    163143
    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);
     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);
    261241       
    262242#endif // ENABLE(CTI)
  • trunk/JavaScriptCore/masm/X86Assembler.h

    r37570 r37581  
    10821082#endif
    10831083
    1084 #if USE(CTI_ARGUMENT)
    10851084    void emitRestoreArgumentReference()
    10861085    {
    1087 #if USE(FAST_CALL_CTI_ARGUMENT)
    10881086        movl_rr(X86::esp, X86::ecx);
    1089 #else
    1090         movl_rm(X86::esp, 0, X86::esp);
    1091 #endif
    10921087    }
    10931088
    10941089    void emitRestoreArgumentReferenceForTrampoline()
    10951090    {
    1096 #if USE(FAST_CALL_CTI_ARGUMENT)
    10971091        movl_rr(X86::esp, X86::ecx);
    10981092        addl_i32r(4, X86::ecx);
    1099 #endif
    1100     }
    1101 #else
    1102     void emitRestoreArgumentReference() {}
    1103     void emitRestoreArgumentReferenceForTrampoline() {}
    1104 #endif
     1093    }
    11051094
    11061095private:
  • trunk/JavaScriptCore/wtf/Platform.h

    r37500 r37581  
    365365#endif
    366366
    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 
    376367#endif /* WTF_Platform_h */
Note: See TracChangeset for help on using the changeset viewer.