Changeset 286296 in webkit for trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h
- Timestamp:
- Nov 30, 2021, 7:44:25 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h
r286111 r286296 50 50 inline Jump emitLoadDouble(VirtualRegister, FPRegisterID dst, RegisterID scratch); 51 51 52 #if USE(JSVALUE32_64)53 inline Jump emitJumpIfNotJSCell(VirtualRegister);54 #endif55 56 void emitGetFromCallFrameHeaderPtr(VirtualRegister entry, RegisterID to, RegisterID from = callFrameRegister);57 void emitPutToCallFrameHeader(RegisterID from, VirtualRegister entry);58 void emitPutToCallFrameHeader(void* value, VirtualRegister entry);59 void emitPutCellToCallFrameHeader(RegisterID from, VirtualRegister entry);60 61 52 VM* vm() const { return m_vm; } 62 53 … … 67 58 inline JSInterfaceJIT::Jump JSInterfaceJIT::emitLoadJSCell(VirtualRegister virtualRegister, RegisterID payload) 68 59 { 60 ASSERT(virtualRegister < VirtualRegister(FirstConstantRegisterIndex)); 69 61 loadPtr(payloadFor(virtualRegister), payload); 70 return emitJumpIfNotJSCell(virtualRegister);62 return branch32(NotEqual, tagFor(virtualRegister), TrustedImm32(JSValue::CellTag)); 71 63 } 72 64 73 inline JSInterfaceJIT::Jump JSInterfaceJIT::emitJumpIfNotJSCell(VirtualRegister virtualRegister)74 {75 ASSERT(virtualRegister < VirtualRegister(FirstConstantRegisterIndex));76 return branch32(NotEqual, tagFor(virtualRegister), TrustedImm32(JSValue::CellTag));77 }78 79 65 inline JSInterfaceJIT::Jump JSInterfaceJIT::emitLoadInt32(VirtualRegister virtualRegister, RegisterID dst) 80 66 { … … 98 84 return notInt; 99 85 } 100 101 #endif 102 103 #if USE(JSVALUE64) 86 #elif USE(JSVALUE64) 104 87 inline JSInterfaceJIT::Jump JSInterfaceJIT::emitLoadJSCell(VirtualRegister virtualRegister, RegisterID dst) 105 88 { … … 107 90 return branchIfNotCell(dst); 108 91 } 109 92 110 93 inline JSInterfaceJIT::Jump JSInterfaceJIT::emitLoadInt32(VirtualRegister virtualRegister, RegisterID dst) 111 94 { … … 130 113 #endif 131 114 132 ALWAYS_INLINE void JSInterfaceJIT::emitGetFromCallFrameHeaderPtr(VirtualRegister entry, RegisterID to, RegisterID from)133 {134 loadPtr(Address(from, entry.offset() * sizeof(Register)), to);135 }136 137 ALWAYS_INLINE void JSInterfaceJIT::emitPutToCallFrameHeader(RegisterID from, VirtualRegister entry)138 {139 #if USE(JSVALUE32_64)140 storePtr(from, payloadFor(entry));141 #else142 store64(from, addressFor(entry));143 #endif144 }145 146 ALWAYS_INLINE void JSInterfaceJIT::emitPutToCallFrameHeader(void* value, VirtualRegister entry)147 {148 storePtr(TrustedImmPtr(value), addressFor(entry));149 }150 151 ALWAYS_INLINE void JSInterfaceJIT::emitPutCellToCallFrameHeader(RegisterID from, VirtualRegister entry)152 {153 #if USE(JSVALUE32_64)154 store32(TrustedImm32(JSValue::CellTag), tagFor(entry));155 store32(from, payloadFor(entry));156 #else157 store64(from, addressFor(entry));158 #endif159 }160 161 115 } // namespace JSC 162 116
Note:
See TracChangeset
for help on using the changeset viewer.