Changeset 190370 in webkit for trunk/Source/JavaScriptCore/jit/CallFrameShuffler64.cpp
- Timestamp:
- Sep 30, 2015, 3:28:08 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/CallFrameShuffler64.cpp
r190329 r190370 88 88 cachedRecovery.recovery().gpr(), 89 89 cachedRecovery.recovery().gpr()); 90 // We have to do this the hard way. 91 m_jit.or64(MacroAssembler::TrustedImm64(TagTypeNumber), 92 cachedRecovery.recovery().gpr()); 90 m_lockedRegisters.set(cachedRecovery.recovery().gpr()); 91 if (tryAcquireTagTypeNumber()) 92 m_jit.or64(m_tagTypeNumber, cachedRecovery.recovery().gpr()); 93 else { 94 // We have to do this the hard way 95 m_jit.or64(MacroAssembler::TrustedImm64(TagTypeNumber), 96 cachedRecovery.recovery().gpr()); 97 } 98 m_lockedRegisters.clear(cachedRecovery.recovery().gpr()); 93 99 cachedRecovery.setRecovery( 94 100 ValueRecovery::inGPR(cachedRecovery.recovery().gpr(), DataFormatJS)); … … 142 148 m_jit.purifyNaN(cachedRecovery.recovery().fpr()); 143 149 m_jit.moveDoubleTo64(cachedRecovery.recovery().fpr(), resultGPR); 144 m_jit.sub64(MacroAssembler::TrustedImm64(TagTypeNumber), resultGPR); 150 m_lockedRegisters.set(resultGPR); 151 if (tryAcquireTagTypeNumber()) 152 m_jit.sub64(m_tagTypeNumber, resultGPR); 153 else 154 m_jit.sub64(MacroAssembler::TrustedImm64(TagTypeNumber), resultGPR); 155 m_lockedRegisters.clear(resultGPR); 145 156 updateRecovery(cachedRecovery, ValueRecovery::inGPR(resultGPR, DataFormatJS)); 146 157 if (verbose) … … 338 349 ASSERT(m_registers[wantedReg] == &cachedRecovery); 339 350 } 351 352 bool CallFrameShuffler::tryAcquireTagTypeNumber() 353 { 354 if (m_tagTypeNumber != InvalidGPRReg) 355 return true; 356 357 m_tagTypeNumber = getFreeGPR(); 358 359 if (m_tagTypeNumber == InvalidGPRReg) 360 return false; 361 362 m_lockedRegisters.set(m_tagTypeNumber); 363 m_jit.move(MacroAssembler::TrustedImm64(TagTypeNumber), m_tagTypeNumber); 364 return true; 365 } 340 366 341 367 } // namespace JSC
Note:
See TracChangeset
for help on using the changeset viewer.