Changeset 293087 in webkit for trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
- Timestamp:
- Apr 20, 2022, 12:54:47 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
r292540 r293087 1059 1059 } 1060 1060 1061 void store8(RegisterID src, const void *address)1061 void store8(RegisterID src, const void* address) 1062 1062 { 1063 1063 store8(src, setupArmAddress(AbsoluteAddress(address))); 1064 1064 } 1065 1065 1066 void store8(TrustedImm32 imm, const void *address)1066 void store8(TrustedImm32 imm, const void* address) 1067 1067 { 1068 1068 TrustedImm32 imm8(static_cast<int8_t>(imm.m_value)); … … 1102 1102 move(imm, dataTempRegister); 1103 1103 store16(dataTempRegister, address); 1104 } 1105 1106 void storePair32(RegisterID src1, TrustedImm32 imm, Address address) 1107 { 1108 RegisterID scratch = getCachedDataTempRegisterIDAndInvalidate(); 1109 move(imm, scratch); 1110 storePair32(src1, scratch, address); 1111 } 1112 1113 void storePair32(TrustedImmPtr immPtr, TrustedImm32 imm32, Address address) 1114 { 1115 RegisterID scratch1 = getCachedAddressTempRegisterIDAndInvalidate(); 1116 move(immPtr, scratch1); 1117 RegisterID scratch2 = getCachedDataTempRegisterIDAndInvalidate(); 1118 move(imm32, scratch2); 1119 storePair32(scratch1, scratch2, address); 1120 } 1121 1122 void storePair32(TrustedImm32 imm1, TrustedImm32 imm2, Address address) 1123 { 1124 RegisterID scratch1 = getCachedAddressTempRegisterIDAndInvalidate(); 1125 move(imm1, scratch1); 1126 RegisterID scratch2 = scratch1; 1127 if (imm1.m_value != imm2.m_value) { 1128 scratch2 = getCachedDataTempRegisterIDAndInvalidate(); 1129 move(imm2, scratch2); 1130 } 1131 storePair32(scratch1, scratch2, address); 1104 1132 } 1105 1133 … … 1139 1167 } 1140 1168 storePair32(src1, src2, Address(scratch, address.offset)); 1169 } 1170 1171 void storePair32(TrustedImm32 imm1, TrustedImm32 imm2, BaseIndex address) 1172 { 1173 // We don't have enough temp registers to move both imm and calculate the address 1174 store32(imm1, address); 1175 store32(imm2, address.withOffset(4)); 1176 } 1177 1178 void storePair32(RegisterID src1, TrustedImm32 imm, const void* address) 1179 { 1180 ArmAddress armAddress = setupArmAddress(AbsoluteAddress(address)); 1181 ASSERT(armAddress.type == ArmAddress::HasOffset); 1182 RegisterID scratch = getCachedDataTempRegisterIDAndInvalidate(); 1183 move(imm, scratch); 1184 storePair32(src1, scratch, Address(armAddress.base, armAddress.u.offset)); 1141 1185 } 1142 1186
Note:
See TracChangeset
for help on using the changeset viewer.