Changeset 284923 in webkit for trunk/Source/JavaScriptCore/jit/CallFrameShuffleData.cpp
- Timestamp:
- Oct 27, 2021, 8:34:42 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/CallFrameShuffleData.cpp
r284911 r284923 34 34 namespace JSC { 35 35 36 #if USE(JSVALUE64)37 38 36 void CallFrameShuffleData::setupCalleeSaveRegisters(CodeBlock* codeBlock) 39 37 { … … 50 48 continue; 51 49 52 VirtualRegister saveSlot { entry.offsetAsIndex() }; 50 int saveSlotIndexInCPURegisters = entry.offsetAsIndex(); 51 52 #if USE(JSVALUE64) 53 // CPU registers are the same size as virtual registers 54 VirtualRegister saveSlot { saveSlotIndexInCPURegisters }; 53 55 registers[entry.reg()] 54 56 = ValueRecovery::displacedInJSStack(saveSlot, DataFormatJS); 57 #elif USE(JSVALUE32_64) 58 // On 32-bit architectures, 2 callee saved registers may be packed into the same slot 59 static_assert(!PayloadOffset || !TagOffset); 60 static_assert(PayloadOffset == 4 || TagOffset == 4); 61 bool inTag = (saveSlotIndexInCPURegisters & 1) == !!TagOffset; 62 if (saveSlotIndexInCPURegisters < 0) 63 saveSlotIndexInCPURegisters -= 1; // Round towards -inf 64 VirtualRegister saveSlot { saveSlotIndexInCPURegisters / 2 }; 65 registers[entry.reg()] 66 = ValueRecovery::calleeSaveRegDisplacedInJSStack(saveSlot, inTag); 67 #endif 55 68 } 56 69 … … 62 75 continue; 63 76 77 #if USE(JSVALUE64) 64 78 registers[reg] = ValueRecovery::inRegister(reg, DataFormatJS); 79 #elif USE(JSVALUE32_64) 80 registers[reg] = ValueRecovery::inRegister(reg, DataFormatInt32); 81 #endif 65 82 } 66 83 } 67 68 #endif // USE(JSVALUE64)69 84 70 85 } // namespace JSC
Note:
See TracChangeset
for help on using the changeset viewer.