Changeset 39738 in webkit for trunk/JavaScriptCore/assembler/MacroAssembler.h
- Timestamp:
- Jan 9, 2009, 12:11:00 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/assembler/MacroAssembler.h
r39540 r39738 580 580 } 581 581 582 void not32(RegisterID srcDest) 583 { 584 m_assembler.notl_r(srcDest); 585 } 586 582 587 void orPtr(RegisterID src, RegisterID dest) 583 588 { … … 586 591 #else 587 592 or32(src, dest); 593 #endif 594 } 595 596 void orPtr(ImmPtr imm, RegisterID dest) 597 { 598 #if PLATFORM(X86_64) 599 move(imm, scratchRegister); 600 m_assembler.orq_rr(scratchRegister, dest); 601 #else 602 or32(Imm32(imm), dest); 588 603 #endif 589 604 } … … 1003 1018 } 1004 1019 1020 void zeroExtend32ToPtr(RegisterID src, RegisterID dest) 1021 { 1022 #if PLATFORM(X86_64) 1023 m_assembler.movl_rr(src, dest); 1024 #else 1025 if (src != dest) 1026 move(src, dest); 1027 #endif 1028 } 1005 1029 1006 1030 … … 1118 1142 } 1119 1143 1144 Jump jaePtr(RegisterID left, RegisterID right) 1145 { 1146 #if PLATFORM(X86_64) 1147 m_assembler.cmpq_rr(right, left); 1148 return Jump(m_assembler.jae()); 1149 #else 1150 return jae32(left, right); 1151 #endif 1152 } 1153 1154 Jump jaePtr(RegisterID reg, ImmPtr ptr) 1155 { 1156 #if PLATFORM(X86_64) 1157 intptr_t imm = ptr.asIntptr(); 1158 if (CAN_SIGN_EXTEND_32_64(imm)) { 1159 compareImm64ForBranch(reg, imm); 1160 return Jump(m_assembler.jae()); 1161 } else { 1162 move(ptr, scratchRegister); 1163 return jaePtr(reg, scratchRegister); 1164 } 1165 #else 1166 return jae32(reg, Imm32(ptr)); 1167 #endif 1168 } 1169 1170 Jump jae32(RegisterID left, RegisterID right) 1171 { 1172 m_assembler.cmpl_rr(right, left); 1173 return Jump(m_assembler.jae()); 1174 } 1175 1120 1176 Jump jae32(RegisterID left, Imm32 right) 1121 1177 { … … 1134 1190 m_assembler.cmpl_rm(right, left.offset, left.base); 1135 1191 return Jump(m_assembler.jae()); 1192 } 1193 1194 Jump jbPtr(RegisterID left, RegisterID right) 1195 { 1196 #if PLATFORM(X86_64) 1197 m_assembler.cmpq_rr(right, left); 1198 return Jump(m_assembler.jb()); 1199 #else 1200 return jb32(left, right); 1201 #endif 1202 } 1203 1204 Jump jbPtr(RegisterID reg, ImmPtr ptr) 1205 { 1206 #if PLATFORM(X86_64) 1207 intptr_t imm = ptr.asIntptr(); 1208 if (CAN_SIGN_EXTEND_32_64(imm)) { 1209 compareImm64ForBranch(reg, imm); 1210 return Jump(m_assembler.jb()); 1211 } else { 1212 move(ptr, scratchRegister); 1213 return jbPtr(reg, scratchRegister); 1214 } 1215 #else 1216 return jb32(reg, Imm32(ptr)); 1217 #endif 1218 } 1219 1220 Jump jb32(RegisterID left, RegisterID right) 1221 { 1222 m_assembler.cmpl_rr(right, left); 1223 return Jump(m_assembler.jb()); 1224 } 1225 1226 Jump jb32(RegisterID left, Imm32 right) 1227 { 1228 compareImm32ForBranch(left, right.m_value); 1229 return Jump(m_assembler.jb()); 1136 1230 } 1137 1231 … … 1469 1563 } 1470 1564 1565 Jump jnzPtr(RegisterID reg, ImmPtr mask) 1566 { 1567 #if PLATFORM(X86_64) 1568 move(mask, scratchRegister); 1569 m_assembler.testq_rr(scratchRegister, reg); 1570 return Jump(m_assembler.jne()); 1571 #else 1572 return jnz32(reg, Imm32(mask)); 1573 #endif 1574 } 1575 1471 1576 Jump jnzPtr(Address address, Imm32 mask = Imm32(-1)) 1472 1577 { … … 1498 1603 #else 1499 1604 return jz32(reg, mask); 1605 #endif 1606 } 1607 1608 Jump jzPtr(RegisterID reg, ImmPtr mask) 1609 { 1610 #if PLATFORM(X86_64) 1611 move(mask, scratchRegister); 1612 m_assembler.testq_rr(scratchRegister, reg); 1613 return Jump(m_assembler.je()); 1614 #else 1615 return jz32(reg, Imm32(mask)); 1500 1616 #endif 1501 1617 }
Note:
See TracChangeset
for help on using the changeset viewer.