Changeset 188105 in webkit for trunk/Source/JavaScriptCore/jit/JIT.h
- Timestamp:
- Aug 6, 2015, 7:08:07 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JIT.h
r187969 r188105 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) 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 160 { 158 161 } 159 162 163 ByValInfo* byValInfo; 160 164 unsigned bytecodeIndex; 165 MacroAssembler::PatchableJump notIndexJump; 161 166 MacroAssembler::PatchableJump badTypeJump; 162 167 JITArrayMode arrayMode; 168 ArrayProfile* arrayProfile; 163 169 MacroAssembler::Label doneTarget; 164 170 MacroAssembler::Label slowPathTarget; … … 205 211 } 206 212 213 static void compileGetByValWithCachedId(VM* vm, CodeBlock* codeBlock, ByValInfo* byValInfo, ReturnAddressPtr returnAddress, const Identifier& propertyName) 214 { 215 JIT jit(vm, codeBlock); 216 jit.m_bytecodeOffset = byValInfo->bytecodeIndex; 217 jit.privateCompileGetByValWithCachedId(byValInfo, returnAddress, propertyName); 218 } 219 207 220 static void compilePutByVal(VM* vm, CodeBlock* codeBlock, ByValInfo* byValInfo, ReturnAddressPtr returnAddress, JITArrayMode arrayMode) 208 221 { … … 247 260 248 261 void privateCompileGetByVal(ByValInfo*, ReturnAddressPtr, JITArrayMode); 262 void privateCompileGetByValWithCachedId(ByValInfo*, ReturnAddressPtr, const Identifier&); 249 263 void privateCompilePutByVal(ByValInfo*, ReturnAddressPtr, JITArrayMode); 250 264 … … 372 386 JumpList emitIntTypedArrayPutByVal(Instruction*, PatchableJump& badType, TypedArrayType); 373 387 JumpList emitFloatTypedArrayPutByVal(Instruction*, PatchableJump& badType, TypedArrayType); 374 388 389 JITGetByIdGenerator emitGetByValWithCachedId(Instruction*, const Identifier&, JumpList& doneCases, JumpList& slowCases); 390 375 391 enum FinalObjectMode { MayBeFinal, KnownNotFinal }; 376 392 … … 702 718 MacroAssembler::Call callOperation(J_JITOperation_EJJ, int, GPRReg, GPRReg); 703 719 MacroAssembler::Call callOperation(J_JITOperation_EJJAp, int, GPRReg, GPRReg, ArrayProfile*); 720 MacroAssembler::Call callOperation(J_JITOperation_EJJBy, int, GPRReg, GPRReg, ByValInfo*); 704 721 MacroAssembler::Call callOperation(C_JITOperation_EJsc, GPRReg); 705 722 MacroAssembler::Call callOperation(J_JITOperation_EJscC, int, GPRReg, JSCell*); … … 746 763 MacroAssembler::Call callOperation(V_JITOperation_EJJJ, RegisterID, RegisterID, RegisterID); 747 764 MacroAssembler::Call callOperation(V_JITOperation_EJJJAp, RegisterID, RegisterID, RegisterID, ArrayProfile*); 765 MacroAssembler::Call callOperation(V_JITOperation_EJJJBy, RegisterID, RegisterID, RegisterID, ByValInfo*); 748 766 MacroAssembler::Call callOperation(V_JITOperation_EJZJ, RegisterID, int32_t, RegisterID); 749 767 MacroAssembler::Call callOperation(V_JITOperation_EJZ, RegisterID, int32_t); … … 762 780 MacroAssembler::Call callOperation(J_JITOperation_EJJ, int, GPRReg, GPRReg, GPRReg, GPRReg); 763 781 MacroAssembler::Call callOperation(J_JITOperation_EJJAp, int, GPRReg, GPRReg, GPRReg, GPRReg, ArrayProfile*); 782 MacroAssembler::Call callOperation(J_JITOperation_EJJBy, int, GPRReg, GPRReg, GPRReg, GPRReg, ByValInfo*); 764 783 MacroAssembler::Call callOperation(P_JITOperation_EJS, GPRReg, GPRReg, size_t); 765 784 MacroAssembler::Call callOperation(S_JITOperation_EJ, RegisterID, RegisterID); … … 769 788 MacroAssembler::Call callOperation(V_JITOperation_EJJJ, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID); 770 789 MacroAssembler::Call callOperation(V_JITOperation_EJJJAp, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, ArrayProfile*); 790 MacroAssembler::Call callOperation(V_JITOperation_EJJJBy, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, RegisterID, ByValInfo*); 771 791 MacroAssembler::Call callOperation(V_JITOperation_EJZ, RegisterID, RegisterID, int32_t); 772 792 MacroAssembler::Call callOperation(V_JITOperation_EJZJ, RegisterID, RegisterID, int32_t, RegisterID, RegisterID);
Note:
See TracChangeset
for help on using the changeset viewer.