Changeset 37581 in webkit for trunk/JavaScriptCore/VM/CTI.h
- Timestamp:
- Oct 14, 2008, 1:21:19 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/CTI.h
r37457 r37581 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)( 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); 104 104 105 105 struct CallRecord { … … 239 239 static const int repatchGetByIdDefaultOffset = 256; 240 240 241 #if USE(FAST_CALL_CTI_ARGUMENT)242 241 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 248 243 // These architecture specific value are used to enable repatching - see comment on op_put_by_id. 249 244 static const int repatchOffsetPutByIdStructureID = 19;
Note:
See TracChangeset
for help on using the changeset viewer.