Changeset 188299 in webkit for trunk/Source/JavaScriptCore/jit/JIT.h
- Timestamp:
- Aug 11, 2015, 3:02:09 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JIT.h
r188201 r188299 150 150 ByValCompilationInfo() { } 151 151 152 ByValCompilationInfo(unsigned bytecodeIndex, MacroAssembler::PatchableJump badTypeJump, JITArrayMode arrayMode, MacroAssembler::Label doneTarget) 153 : bytecodeIndex(bytecodeIndex) 152 ByValCompilationInfo(ByValInfo* byValInfo, unsigned bytecodeIndex, MacroAssembler::PatchableJump notIndexJump, MacroAssembler::PatchableJump badTypeJump, JITArrayMode arrayMode, ArrayProfile* arrayProfile, MacroAssembler::Label doneTarget, MacroAssembler::Label nextHotPathTarget) 153 : byValInfo(byValInfo) 154 , bytecodeIndex(bytecodeIndex) 155 , notIndexJump(notIndexJump) 154 156 , badTypeJump(badTypeJump) 155 157 , arrayMode(arrayMode) 158 , arrayProfile(arrayProfile) 156 159 , doneTarget(doneTarget) 157 { 158 } 159 160 , nextHotPathTarget(nextHotPathTarget) 161 { 162 } 163 164 ByValInfo* byValInfo; 160 165 unsigned bytecodeIndex; 166 MacroAssembler::PatchableJump notIndexJump; 161 167 MacroAssembler::PatchableJump badTypeJump; 162 168 JITArrayMode arrayMode; 169 ArrayProfile* arrayProfile; 163 170 MacroAssembler::Label doneTarget; 171 MacroAssembler::Label nextHotPathTarget; 164 172 MacroAssembler::Label slowPathTarget; 165 173 MacroAssembler::Call returnAddress; … … 205 213 } 206 214 215 static void compileGetByValWithCachedId(VM* vm, CodeBlock* codeBlock, ByValInfo* byValInfo, ReturnAddressPtr returnAddress, const Identifier& propertyName) 216 { 217 JIT jit(vm, codeBlock); 218 jit.m_bytecodeOffset = byValInfo->bytecodeIndex; 219 jit.privateCompileGetByValWithCachedId(byValInfo, returnAddress, propertyName); 220 } 221 207 222 static void compilePutByVal(VM* vm, CodeBlock* codeBlock, ByValInfo* byValInfo, ReturnAddressPtr returnAddress, JITArrayMode arrayMode) 208 223 { … … 247 262 248 263 void privateCompileGetByVal(ByValInfo*, ReturnAddressPtr, JITArrayMode); 264 void privateCompileGetByValWithCachedId(ByValInfo*, ReturnAddressPtr, const Identifier&); 249 265 void privateCompilePutByVal(ByValInfo*, ReturnAddressPtr, JITArrayMode); 250 266 … … 372 388 JumpList emitIntTypedArrayPutByVal(Instruction*, PatchableJump& badType, TypedArrayType); 373 389 JumpList emitFloatTypedArrayPutByVal(Instruction*, PatchableJump& badType, TypedArrayType); 374 390 391 JITGetByIdGenerator emitGetByValWithCachedId(Instruction*, const Identifier&, Jump& fastDoneCase, Jump& slowDoneCase, JumpList& slowCases); 392 375 393 enum FinalObjectMode { MayBeFinal, KnownNotFinal }; 376 394 … … 703 721 MacroAssembler::Call callOperation(J_JITOperation_EJJ, int, GPRReg, GPRReg); 704 722 MacroAssembler::Call callOperation(J_JITOperation_EJJAp, int, GPRReg, GPRReg, ArrayProfile*); 723 MacroAssembler::Call callOperation(J_JITOperation_EJJBy, int, GPRReg, GPRReg, ByValInfo*); 705 724 MacroAssembler::Call callOperation(C_JITOperation_EJsc, GPRReg); 706 725 MacroAssembler::Call callOperation(J_JITOperation_EJscC, int, GPRReg, JSCell*); … … 747 766 MacroAssembler::Call callOperation(V_JITOperation_EJJJ, RegisterID, RegisterID, RegisterID); 748 767 MacroAssembler::Call callOperation(V_JITOperation_EJJJAp, RegisterID, RegisterID, RegisterID, ArrayProfile*); 768 MacroAssembler::Call callOperation(V_JITOperation_EJJJBy, RegisterID, RegisterID, RegisterID, ByValInfo*); 749 769 MacroAssembler::Call callOperation(V_JITOperation_EJZJ, RegisterID, int32_t, RegisterID); 750 770 MacroAssembler::Call callOperation(V_JITOperation_EJZ, RegisterID, int32_t); … … 763 783 MacroAssembler::Call callOperation(J_JITOperation_EJJ, int, GPRReg, GPRReg, GPRReg, GPRReg); 764 784 MacroAssembler::Call callOperation(J_JITOperation_EJJAp, int, GPRReg, GPRReg, GPRReg, GPRReg, ArrayProfile*); 785 MacroAssembler::Call callOperation(J_JITOperation_EJJBy, int, GPRReg, GPRReg, GPRReg, GPRReg, ByValInfo*); 765 786 MacroAssembler::Call callOperation(P_JITOperation_EJS, GPRReg, GPRReg, size_t); 766 787 MacroAssembler::Call callOperation(S_JITOperation_EJ, RegisterID, RegisterID); … … 770 791 MacroAssembler::Call callOperation(V_JITOperation_EJJJ, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID); 771 792 MacroAssembler::Call callOperation(V_JITOperation_EJJJAp, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, ArrayProfile*); 793 MacroAssembler::Call callOperation(V_JITOperation_EJJJBy, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, ByValInfo*); 772 794 MacroAssembler::Call callOperation(V_JITOperation_EJZ, RegisterID, RegisterID, int32_t); 773 795 MacroAssembler::Call callOperation(V_JITOperation_EJZJ, RegisterID, RegisterID, int32_t, RegisterID, RegisterID);
Note:
See TracChangeset
for help on using the changeset viewer.