|
Lines 47-91
class ArrayAllocationProfile;
Source/JavaScriptCore/jit/JITOperations.h_sec1
|
| 47 |
|
47 |
|
| 48 |
extern "C" { |
48 |
extern "C" { |
| 49 |
|
49 |
|
| 50 |
// This method is used to lookup an exception hander, keyed by faultLocation, which is |
|
|
| 51 |
// the return location from one of the calls out to one of the helper operations above. |
| 52 |
|
| 53 |
// According to C++ rules, a type used for the return signature of function with C linkage (i.e. |
| 54 |
// 'extern "C"') needs to be POD; hence putting any constructors into it could cause either compiler |
| 55 |
// warnings, or worse, a change in the ABI used to return these types. |
| 56 |
struct JITHandler { |
| 57 |
union Union { |
| 58 |
struct Struct { |
| 59 |
ExecState* exec; |
| 60 |
void* handler; |
| 61 |
} s; |
| 62 |
uint64_t encoded; |
| 63 |
} u; |
| 64 |
}; |
| 65 |
|
| 66 |
inline JITHandler createJITHandler(ExecState* exec, void* handler) |
| 67 |
{ |
| 68 |
JITHandler result; |
| 69 |
result.u.s.exec = exec; |
| 70 |
result.u.s.handler = handler; |
| 71 |
return result; |
| 72 |
} |
| 73 |
|
| 74 |
#if CPU(X86_64) |
| 75 |
typedef JITHandler JITHandlerEncoded; |
| 76 |
inline JITHandlerEncoded dfgHandlerEncoded(ExecState* exec, void* handler) |
| 77 |
{ |
| 78 |
return createJITHandler(exec, handler); |
| 79 |
} |
| 80 |
#else |
| 81 |
typedef uint64_t JITHandlerEncoded; |
| 82 |
inline JITHandlerEncoded dfgHandlerEncoded(ExecState* exec, void* handler) |
| 83 |
{ |
| 84 |
COMPILE_ASSERT(sizeof(JITHandler::Union) == sizeof(uint64_t), JITHandler_Union_is_64bit); |
| 85 |
return createJITHandler(exec, handler).u.encoded; |
| 86 |
} |
| 87 |
#endif |
| 88 |
|
| 89 |
// These typedefs provide typechecking when generating calls out to helper routines; |
50 |
// These typedefs provide typechecking when generating calls out to helper routines; |
| 90 |
// this helps prevent calling a helper routine with the wrong arguments! |
51 |
// this helps prevent calling a helper routine with the wrong arguments! |
| 91 |
/* |
52 |
/* |
|
Lines 102-108
inline JITHandlerEncoded dfgHandlerEncod
Source/JavaScriptCore/jit/JITOperations.h_sec2
|
| 102 |
Idc: const Identifier* |
63 |
Idc: const Identifier* |
| 103 |
J: EncodedJSValue |
64 |
J: EncodedJSValue |
| 104 |
Jcp: const JSValue* |
65 |
Jcp: const JSValue* |
| 105 |
Jhe: JITHandlerEncoded |
|
|
| 106 |
Jsa: JSActivation* |
66 |
Jsa: JSActivation* |
| 107 |
Jss: JSString* |
67 |
Jss: JSString* |
| 108 |
O: JSObject* |
68 |
O: JSObject* |
|
Lines 112-117
inline JITHandlerEncoded dfgHandlerEncod
Source/JavaScriptCore/jit/JITOperations.h_sec3
|
| 112 |
S: size_t |
72 |
S: size_t |
| 113 |
St: Structure* |
73 |
St: Structure* |
| 114 |
V: void |
74 |
V: void |
|
|
75 |
Vm: VM* |
| 115 |
W: WatchpointSet* |
76 |
W: WatchpointSet* |
| 116 |
Z: int32_t |
77 |
Z: int32_t |
| 117 |
*/ |
78 |
*/ |
|
Lines 142-148
typedef EncodedJSValue JIT_OPERATION (*J
Source/JavaScriptCore/jit/JITOperations.h_sec4
|
| 142 |
typedef EncodedJSValue JIT_OPERATION (*J_JITOperation_EZ)(ExecState*, int32_t); |
103 |
typedef EncodedJSValue JIT_OPERATION (*J_JITOperation_EZ)(ExecState*, int32_t); |
| 143 |
typedef EncodedJSValue JIT_OPERATION (*J_JITOperation_EZIcfZ)(ExecState*, int32_t, InlineCallFrame*, int32_t); |
104 |
typedef EncodedJSValue JIT_OPERATION (*J_JITOperation_EZIcfZ)(ExecState*, int32_t, InlineCallFrame*, int32_t); |
| 144 |
typedef EncodedJSValue JIT_OPERATION (*J_JITOperation_EZZ)(ExecState*, int32_t, int32_t); |
105 |
typedef EncodedJSValue JIT_OPERATION (*J_JITOperation_EZZ)(ExecState*, int32_t, int32_t); |
| 145 |
typedef JITHandlerEncoded JIT_OPERATION (*Jhe_JITOperation_EJ)(ExecState*, EncodedJSValue); |
|
|
| 146 |
typedef JSCell* JIT_OPERATION (*C_JITOperation_E)(ExecState*); |
106 |
typedef JSCell* JIT_OPERATION (*C_JITOperation_E)(ExecState*); |
| 147 |
typedef JSCell* JIT_OPERATION (*C_JITOperation_EZ)(ExecState*, int32_t); |
107 |
typedef JSCell* JIT_OPERATION (*C_JITOperation_EZ)(ExecState*, int32_t); |
| 148 |
typedef JSCell* JIT_OPERATION (*C_JITOperation_EC)(ExecState*, JSCell*); |
108 |
typedef JSCell* JIT_OPERATION (*C_JITOperation_EC)(ExecState*, JSCell*); |
|
Lines 191-196
typedef void JIT_OPERATION (*V_JITOperat
Source/JavaScriptCore/jit/JITOperations.h_sec5
|
| 191 |
typedef void JIT_OPERATION (*V_JITOperation_EPZJ)(ExecState*, void*, int32_t, EncodedJSValue); |
151 |
typedef void JIT_OPERATION (*V_JITOperation_EPZJ)(ExecState*, void*, int32_t, EncodedJSValue); |
| 192 |
typedef void JIT_OPERATION (*V_JITOperation_W)(WatchpointSet*); |
152 |
typedef void JIT_OPERATION (*V_JITOperation_W)(WatchpointSet*); |
| 193 |
typedef void JIT_OPERATION (*V_JITOperation_EZ)(ExecState*, int32_t); |
153 |
typedef void JIT_OPERATION (*V_JITOperation_EZ)(ExecState*, int32_t); |
|
|
154 |
typedef void JIT_OPERATION (*V_JITOperation_EVm)(ExecState*, VM*); |
| 194 |
typedef char* JIT_OPERATION (*P_JITOperation_E)(ExecState*); |
155 |
typedef char* JIT_OPERATION (*P_JITOperation_E)(ExecState*); |
| 195 |
typedef char* JIT_OPERATION (*P_JITOperation_EC)(ExecState*, JSCell*); |
156 |
typedef char* JIT_OPERATION (*P_JITOperation_EC)(ExecState*, JSCell*); |
| 196 |
typedef char* JIT_OPERATION (*P_JITOperation_EJS)(ExecState*, EncodedJSValue, size_t); |
157 |
typedef char* JIT_OPERATION (*P_JITOperation_EJS)(ExecState*, EncodedJSValue, size_t); |
|
Lines 210-216
typedef char* JIT_OPERATION (*P_JITOpera
Source/JavaScriptCore/jit/JITOperations.h_sec6
|
| 210 |
typedef StringImpl* JIT_OPERATION (*I_JITOperation_EJss)(ExecState*, JSString*); |
171 |
typedef StringImpl* JIT_OPERATION (*I_JITOperation_EJss)(ExecState*, JSString*); |
| 211 |
typedef JSString* JIT_OPERATION (*Jss_JITOperation_EZ)(ExecState*, int32_t); |
172 |
typedef JSString* JIT_OPERATION (*Jss_JITOperation_EZ)(ExecState*, int32_t); |
| 212 |
|
173 |
|
| 213 |
JITHandlerEncoded JIT_OPERATION lookupExceptionHandler(ExecState*) WTF_INTERNAL; |
174 |
// This method is used to lookup an exception hander, keyed by faultLocation, which is |
|
|
175 |
// the return location from one of the calls out to one of the helper operations above. |
| 176 |
|
| 177 |
void JIT_OPERATION lookupExceptionHandler(ExecState*) WTF_INTERNAL; |
| 178 |
void JIT_OPERATION operationVMHandleException(ExecState*, VM*) WTF_INTERNAL; |
| 214 |
|
179 |
|
| 215 |
void JIT_OPERATION operationStackCheck(ExecState*, CodeBlock*) WTF_INTERNAL; |
180 |
void JIT_OPERATION operationStackCheck(ExecState*, CodeBlock*) WTF_INTERNAL; |
| 216 |
int32_t JIT_OPERATION operationCallArityCheck(ExecState*) WTF_INTERNAL; |
181 |
int32_t JIT_OPERATION operationCallArityCheck(ExecState*) WTF_INTERNAL; |
|
Lines 264-270
JSCell* JIT_OPERATION operationNewObject
Source/JavaScriptCore/jit/JITOperations.h_sec7
|
| 264 |
EncodedJSValue JIT_OPERATION operationNewRegexp(ExecState*, void*) WTF_INTERNAL; |
229 |
EncodedJSValue JIT_OPERATION operationNewRegexp(ExecState*, void*) WTF_INTERNAL; |
| 265 |
void JIT_OPERATION operationHandleWatchdogTimer(ExecState*) WTF_INTERNAL; |
230 |
void JIT_OPERATION operationHandleWatchdogTimer(ExecState*) WTF_INTERNAL; |
| 266 |
void JIT_OPERATION operationThrowStaticError(ExecState*, EncodedJSValue, int32_t) WTF_INTERNAL; |
231 |
void JIT_OPERATION operationThrowStaticError(ExecState*, EncodedJSValue, int32_t) WTF_INTERNAL; |
| 267 |
JITHandlerEncoded JIT_OPERATION operationThrow(ExecState*, EncodedJSValue) WTF_INTERNAL; |
232 |
void JIT_OPERATION operationThrow(ExecState*, EncodedJSValue) WTF_INTERNAL; |
| 268 |
void JIT_OPERATION operationDebug(ExecState*, int32_t) WTF_INTERNAL; |
233 |
void JIT_OPERATION operationDebug(ExecState*, int32_t) WTF_INTERNAL; |
| 269 |
#if ENABLE(DFG_JIT) |
234 |
#if ENABLE(DFG_JIT) |
| 270 |
char* JIT_OPERATION operationOptimize(ExecState*, int32_t) WTF_INTERNAL; |
235 |
char* JIT_OPERATION operationOptimize(ExecState*, int32_t) WTF_INTERNAL; |