| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |