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

Side by Side Diff: JavaScriptCore/jit/JIT.h

Issue 28077: WebKit side of merge from r41149 to r41181. (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/WebKit/
Patch Set: Created 11 years, 10 months 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
« no previous file with comments | « JavaScriptCore/interpreter/Interpreter.cpp ('k') | JavaScriptCore/jit/JIT.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 JIT jit(globalData, codeBlock); 356 JIT jit(globalData, codeBlock);
357 jit.privateCompilePutByIdReplace(stubInfo, structure, cachedOffset, returnAddress); 357 jit.privateCompilePutByIdReplace(stubInfo, structure, cachedOffset, returnAddress);
358 } 358 }
359 359
360 static void compilePutByIdTransition(JSGlobalData* globalData, CodeBlock * codeBlock, StructureStubInfo* stubInfo, Structure* oldStructure, Structure* ne wStructure, size_t cachedOffset, StructureChain* chain, ProcessorReturnAddress r eturnAddress) 360 static void compilePutByIdTransition(JSGlobalData* globalData, CodeBlock * codeBlock, StructureStubInfo* stubInfo, Structure* oldStructure, Structure* ne wStructure, size_t cachedOffset, StructureChain* chain, ProcessorReturnAddress r eturnAddress)
361 { 361 {
362 JIT jit(globalData, codeBlock); 362 JIT jit(globalData, codeBlock);
363 jit.privateCompilePutByIdTransition(stubInfo, oldStructure, newStruc ture, cachedOffset, chain, returnAddress); 363 jit.privateCompilePutByIdTransition(stubInfo, oldStructure, newStruc ture, cachedOffset, chain, returnAddress);
364 } 364 }
365 365
366 static void compileCTIMachineTrampolines(JSGlobalData* globalData) 366 static void compileCTIMachineTrampolines(JSGlobalData* globalData, RefPt r<ExecutablePool>* executablePool, void** ctiArrayLengthTrampoline, void** ctiSt ringLengthTrampoline, void** ctiVirtualCallPreLink, void** ctiVirtualCallLink, v oid** ctiVirtualCall)
367
367 { 368 {
368 JIT jit(globalData); 369 JIT jit(globalData);
369 jit.privateCompileCTIMachineTrampolines(); 370 jit.privateCompileCTIMachineTrampolines(executablePool, ctiArrayLeng thTrampoline, ctiStringLengthTrampoline, ctiVirtualCallPreLink, ctiVirtualCallLi nk, ctiVirtualCall);
370 } 371 }
371 372
372 static void patchGetByIdSelf(StructureStubInfo*, Structure*, size_t cach edOffset, ProcessorReturnAddress returnAddress); 373 static void patchGetByIdSelf(StructureStubInfo*, Structure*, size_t cach edOffset, ProcessorReturnAddress returnAddress);
373 static void patchPutByIdReplace(StructureStubInfo*, Structure*, size_t c achedOffset, ProcessorReturnAddress returnAddress); 374 static void patchPutByIdReplace(StructureStubInfo*, Structure*, size_t c achedOffset, ProcessorReturnAddress returnAddress);
374 375
375 static void compilePatchGetArrayLength(JSGlobalData* globalData, CodeBlo ck* codeBlock, ProcessorReturnAddress returnAddress) 376 static void compilePatchGetArrayLength(JSGlobalData* globalData, CodeBlo ck* codeBlock, ProcessorReturnAddress returnAddress)
376 { 377 {
377 JIT jit(globalData, codeBlock); 378 JIT jit(globalData, codeBlock);
378 return jit.privateCompilePatchGetArrayLength(returnAddress); 379 return jit.privateCompilePatchGetArrayLength(returnAddress);
379 } 380 }
(...skipping 12 matching lines...) Expand all
392 void privateCompileGetByIdProto(StructureStubInfo*, Structure*, Structur e* prototypeStructure, size_t cachedOffset, ProcessorReturnAddress returnAddress , CallFrame* callFrame); 393 void privateCompileGetByIdProto(StructureStubInfo*, Structure*, Structur e* prototypeStructure, size_t cachedOffset, ProcessorReturnAddress returnAddress , CallFrame* callFrame);
393 #if USE(CTI_REPATCH_PIC) 394 #if USE(CTI_REPATCH_PIC)
394 void privateCompileGetByIdSelfList(StructureStubInfo*, PolymorphicAccess StructureList*, int, Structure*, size_t cachedOffset); 395 void privateCompileGetByIdSelfList(StructureStubInfo*, PolymorphicAccess StructureList*, int, Structure*, size_t cachedOffset);
395 void privateCompileGetByIdProtoList(StructureStubInfo*, PolymorphicAcces sStructureList*, int, Structure*, Structure* prototypeStructure, size_t cachedOf fset, CallFrame* callFrame); 396 void privateCompileGetByIdProtoList(StructureStubInfo*, PolymorphicAcces sStructureList*, int, Structure*, Structure* prototypeStructure, size_t cachedOf fset, CallFrame* callFrame);
396 void privateCompileGetByIdChainList(StructureStubInfo*, PolymorphicAcces sStructureList*, int, Structure*, StructureChain* chain, size_t count, size_t ca chedOffset, CallFrame* callFrame); 397 void privateCompileGetByIdChainList(StructureStubInfo*, PolymorphicAcces sStructureList*, int, Structure*, StructureChain* chain, size_t count, size_t ca chedOffset, CallFrame* callFrame);
397 #endif 398 #endif
398 void privateCompileGetByIdChain(StructureStubInfo*, Structure*, Structur eChain*, size_t count, size_t cachedOffset, ProcessorReturnAddress returnAddress , CallFrame* callFrame); 399 void privateCompileGetByIdChain(StructureStubInfo*, Structure*, Structur eChain*, size_t count, size_t cachedOffset, ProcessorReturnAddress returnAddress , CallFrame* callFrame);
399 void privateCompilePutByIdReplace(StructureStubInfo*, Structure*, size_t cachedOffset, ProcessorReturnAddress returnAddress); 400 void privateCompilePutByIdReplace(StructureStubInfo*, Structure*, size_t cachedOffset, ProcessorReturnAddress returnAddress);
400 void privateCompilePutByIdTransition(StructureStubInfo*, Structure*, Str ucture*, size_t cachedOffset, StructureChain*, ProcessorReturnAddress returnAddr ess); 401 void privateCompilePutByIdTransition(StructureStubInfo*, Structure*, Str ucture*, size_t cachedOffset, StructureChain*, ProcessorReturnAddress returnAddr ess);
401 402
402 void privateCompileCTIMachineTrampolines(); 403 void privateCompileCTIMachineTrampolines(RefPtr<ExecutablePool>* executa blePool, void** ctiArrayLengthTrampoline, void** ctiStringLengthTrampoline, void ** ctiVirtualCallPreLink, void** ctiVirtualCallLink, void** ctiVirtualCall);
403 void privateCompilePatchGetArrayLength(ProcessorReturnAddress returnAddr ess); 404 void privateCompilePatchGetArrayLength(ProcessorReturnAddress returnAddr ess);
404 405
405 void addSlowCase(Jump); 406 void addSlowCase(Jump);
406 void addJump(Jump, int); 407 void addJump(Jump, int);
407 void emitJumpSlowToHot(Jump, int); 408 void emitJumpSlowToHot(Jump, int);
408 409
409 void compileGetByIdHotPath(int resultVReg, int baseVReg, Identifier* ide nt, unsigned propertyAccessInstructionIndex); 410 void compileGetByIdHotPath(int resultVReg, int baseVReg, Identifier* ide nt, unsigned propertyAccessInstructionIndex);
410 void compileGetByIdSlowCase(int resultVReg, int baseVReg, Identifier* id ent, Vector<SlowCaseEntry>::iterator& iter, unsigned propertyAccessInstructionIn dex); 411 void compileGetByIdSlowCase(int resultVReg, int baseVReg, Identifier* id ent, Vector<SlowCaseEntry>::iterator& iter, unsigned propertyAccessInstructionIn dex);
411 void compilePutByIdHotPath(int baseVReg, Identifier* ident, int valueVRe g, unsigned propertyAccessInstructionIndex); 412 void compilePutByIdHotPath(int baseVReg, Identifier* ident, int valueVRe g, unsigned propertyAccessInstructionIndex);
412 void compilePutByIdSlowCase(int baseVReg, Identifier* ident, int valueVR eg, Vector<SlowCaseEntry>::iterator& iter, unsigned propertyAccessInstructionInd ex); 413 void compilePutByIdSlowCase(int baseVReg, Identifier* ident, int valueVR eg, Vector<SlowCaseEntry>::iterator& iter, unsigned propertyAccessInstructionInd ex);
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
591 int m_lastResultBytecodeRegister; 592 int m_lastResultBytecodeRegister;
592 unsigned m_jumpTargetsPosition; 593 unsigned m_jumpTargetsPosition;
593 }; 594 };
594 } 595 }
595 596
596 #endif // ENABLE(JIT) 597 #endif // ENABLE(JIT)
597 598
598 #endif // JIT_h 599 #endif // JIT_h
599 600
600 601
OLDNEW
« no previous file with comments | « JavaScriptCore/interpreter/Interpreter.cpp ('k') | JavaScriptCore/jit/JIT.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698