Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: third_party/WebKit/JavaScriptCore/VM/Machine.h

Issue 10670: Do another merge using nifty new merge script (CL for that coming soon). (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 277
278 // Default number of ticks before a timeout check should be done. 278 // Default number of ticks before a timeout check should be done.
279 static const int initialTickCountThreshold = 1024; 279 static const int initialTickCountThreshold = 1024;
280 280
281 bool isJSArray(JSValue* v) { return !JSImmediate::isImmediate(v) && v->a sCell()->vptr() == m_jsArrayVptr; } 281 bool isJSArray(JSValue* v) { return !JSImmediate::isImmediate(v) && v->a sCell()->vptr() == m_jsArrayVptr; }
282 bool isJSString(JSValue* v) { return !JSImmediate::isImmediate(v) && v-> asCell()->vptr() == m_jsStringVptr; } 282 bool isJSString(JSValue* v) { return !JSImmediate::isImmediate(v) && v-> asCell()->vptr() == m_jsStringVptr; }
283 283
284 private: 284 private:
285 enum ExecutionFlag { Normal, InitializeAndReturn }; 285 enum ExecutionFlag { Normal, InitializeAndReturn };
286 286
287 NEVER_INLINE JSValue* callEval(CallFrame*, JSObject* thisObject, ScopeCh ainNode*, RegisterFile*, int argv, int argc, JSValue*& exceptionValue); 287 NEVER_INLINE JSValue* callEval(CallFrame*, RegisterFile*, Register* argv , int argc, int registerOffset, JSValue*& exceptionValue);
288 JSValue* execute(EvalNode*, CallFrame*, JSObject* thisObject, int regist erOffset, ScopeChainNode*, JSValue** exception); 288 JSValue* execute(EvalNode*, CallFrame*, JSObject* thisObject, int global RegisterOffset, ScopeChainNode*, JSValue** exception);
289 289
290 NEVER_INLINE void debug(CallFrame*, DebugHookID, int firstLine, int last Line); 290 NEVER_INLINE void debug(CallFrame*, DebugHookID, int firstLine, int last Line);
291 291
292 NEVER_INLINE bool resolve(CallFrame*, Instruction*, JSValue*& exceptionV alue); 292 NEVER_INLINE bool resolve(CallFrame*, Instruction*, JSValue*& exceptionV alue);
293 NEVER_INLINE bool resolveSkip(CallFrame*, Instruction*, JSValue*& except ionValue); 293 NEVER_INLINE bool resolveSkip(CallFrame*, Instruction*, JSValue*& except ionValue);
294 NEVER_INLINE bool resolveGlobal(CallFrame*, Instruction*, JSValue*& exce ptionValue); 294 NEVER_INLINE bool resolveGlobal(CallFrame*, Instruction*, JSValue*& exce ptionValue);
295 NEVER_INLINE void resolveBase(CallFrame*, Instruction* vPC); 295 NEVER_INLINE void resolveBase(CallFrame*, Instruction* vPC);
296 NEVER_INLINE bool resolveBaseAndProperty(CallFrame*, Instruction*, JSVal ue*& exceptionValue); 296 NEVER_INLINE bool resolveBaseAndProperty(CallFrame*, Instruction*, JSVal ue*& exceptionValue);
297 NEVER_INLINE ScopeChainNode* createExceptionScope(CallFrame*, const Inst ruction* vPC); 297 NEVER_INLINE ScopeChainNode* createExceptionScope(CallFrame*, const Inst ruction* vPC);
298 298
299 NEVER_INLINE bool unwindCallFrame(CallFrame*&, JSValue*, const Instructi on*&, CodeBlock*&); 299 NEVER_INLINE bool unwindCallFrame(CallFrame*&, JSValue*, const Instructi on*&, CodeBlock*&);
300 NEVER_INLINE Instruction* throwException(CallFrame*&, JSValue*&, const I nstruction*, bool); 300 NEVER_INLINE Instruction* throwException(CallFrame*&, JSValue*&, const I nstruction*, bool);
301 NEVER_INLINE bool resolveBaseAndFunc(CallFrame*, Instruction*, JSValue*& exceptionValue); 301 NEVER_INLINE bool resolveBaseAndFunc(CallFrame*, Instruction*, JSValue*& exceptionValue);
302 302
303 static ALWAYS_INLINE CallFrame* slideRegisterWindowForCall(CodeBlock*, R egisterFile*, CallFrame*, size_t registerOffset, int argc); 303 static ALWAYS_INLINE CallFrame* slideRegisterWindowForCall(CodeBlock*, R egisterFile*, CallFrame*, size_t registerOffset, int argc);
304 304
305 static CallFrame* findFunctionCallFrame(CallFrame*, InternalFunction*); 305 static CallFrame* findFunctionCallFrame(CallFrame*, InternalFunction*);
306 306
307 JSValue* privateExecute(ExecutionFlag, RegisterFile*, CallFrame*, JSValu e** exception); 307 JSValue* privateExecute(ExecutionFlag, RegisterFile*, CallFrame*, JSValu e** exception);
308 308
309 void dumpCallFrame(const RegisterFile*, CallFrame*); 309 void dumpCallFrame(CallFrame*);
310 void dumpRegisters(const RegisterFile*, CallFrame*); 310 void dumpRegisters(CallFrame*);
311 311
312 JSValue* checkTimeout(JSGlobalObject*); 312 JSValue* checkTimeout(JSGlobalObject*);
313 void resetTimeoutCheck(); 313 void resetTimeoutCheck();
314 314
315 void tryCacheGetByID(CallFrame*, CodeBlock*, Instruction*, JSValue* base Value, const Identifier& propertyName, const PropertySlot&); 315 void tryCacheGetByID(CallFrame*, CodeBlock*, Instruction*, JSValue* base Value, const Identifier& propertyName, const PropertySlot&);
316 void uncacheGetByID(CodeBlock*, Instruction* vPC); 316 void uncacheGetByID(CodeBlock*, Instruction* vPC);
317 void tryCachePutByID(CallFrame*, CodeBlock*, Instruction*, JSValue* base Value, const PutPropertySlot&); 317 void tryCachePutByID(CallFrame*, CodeBlock*, Instruction*, JSValue* base Value, const PutPropertySlot&);
318 void uncachePutByID(CodeBlock*, Instruction* vPC); 318 void uncachePutByID(CodeBlock*, Instruction* vPC);
319 319
320 bool isCallOpcode(Opcode opcode) { return opcode == getOpcode(op_call) | | opcode == getOpcode(op_construct) || opcode == getOpcode(op_call_eval); } 320 bool isCallOpcode(Opcode opcode) { return opcode == getOpcode(op_call) | | opcode == getOpcode(op_construct) || opcode == getOpcode(op_call_eval); }
321 321
322 #if ENABLE(CTI) 322 #if ENABLE(CTI)
323 static void throwStackOverflowPreviousFrame(CallFrame*, JSGlobalData*, v oid*& returnAddress); 323 static void throwStackOverflowPreviousFrame(CallFrame**, JSGlobalData*, void*& returnAddress);
324 324
325 void tryCTICacheGetByID(CallFrame*, CodeBlock*, void* returnAddress, JSV alue* baseValue, const Identifier& propertyName, const PropertySlot&); 325 void tryCTICacheGetByID(CallFrame*, CodeBlock*, void* returnAddress, JSV alue* baseValue, const Identifier& propertyName, const PropertySlot&);
326 void tryCTICachePutByID(CallFrame*, CodeBlock*, void* returnAddress, JSV alue* baseValue, const PutPropertySlot&); 326 void tryCTICachePutByID(CallFrame*, CodeBlock*, void* returnAddress, JSV alue* baseValue, const PutPropertySlot&);
327 327
328 JITCodeBuffer* jitCodeBuffer() const { return m_jitCodeBuffer.get(); } 328 JITCodeBuffer* jitCodeBuffer() const { return m_jitCodeBuffer.get(); }
329 #endif 329 #endif
330 330
331 SamplingTool* m_sampler; 331 SamplingTool* m_sampler;
332 332
333 #if ENABLE(CTI) 333 #if ENABLE(CTI)
(...skipping 18 matching lines...) Expand all
352 352
353 #if HAVE(COMPUTED_GOTO) 353 #if HAVE(COMPUTED_GOTO)
354 Opcode m_opcodeTable[numOpcodeIDs]; // Maps OpcodeID => Opcode for compi ling 354 Opcode m_opcodeTable[numOpcodeIDs]; // Maps OpcodeID => Opcode for compi ling
355 HashMap<Opcode, OpcodeID> m_opcodeIDTable; // Maps Opcode => OpcodeID fo r decompiling 355 HashMap<Opcode, OpcodeID> m_opcodeIDTable; // Maps Opcode => OpcodeID fo r decompiling
356 #endif 356 #endif
357 }; 357 };
358 358
359 } // namespace JSC 359 } // namespace JSC
360 360
361 #endif // Machine_h 361 #endif // Machine_h
OLDNEW
« no previous file with comments | « third_party/WebKit/JavaScriptCore/VM/CodeBlock.cpp ('k') | third_party/WebKit/JavaScriptCore/VM/Machine.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698