Changeset 124930 in webkit for trunk/Source/JavaScriptCore/assembler/ARMAssembler.cpp
- Timestamp:
- Aug 7, 2012, 3:55:04 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/ARMAssembler.cpp
r121885 r124930 47 47 *ldr = (*ldr & ~0xfff) | diff; 48 48 } else 49 *ldr = (*ldr & ~(0xfff | ARMAssembler::D T_UP)) | sizeof(ARMWord);49 *ldr = (*ldr & ~(0xfff | ARMAssembler::DataTransferUp)) | sizeof(ARMWord); 50 50 } 51 51 … … 57 57 58 58 if (imm <= 0xff) 59 return O P2_IMM| imm;59 return Op2Immediate | imm; 60 60 61 61 if ((imm & 0xff000000) == 0) { … … 84 84 85 85 if ((imm & 0x00ffffff) == 0) 86 return O P2_IMM| (imm >> 24) | (rol << 8);87 88 return I NVALID_IMM;86 return Op2Immediate | (imm >> 24) | (rol << 8); 87 88 return InvalidImmediate; 89 89 } 90 90 … … 130 130 131 131 if ((imm & 0xff000000) == 0) { 132 imm1 = O P2_IMM| ((imm >> 16) & 0xff) | (((rol + 4) & 0xf) << 8);133 imm2 = O P2_IMM| ((imm >> 8) & 0xff) | (((rol + 8) & 0xf) << 8);132 imm1 = Op2Immediate | ((imm >> 16) & 0xff) | (((rol + 4) & 0xf) << 8); 133 imm2 = Op2Immediate | ((imm >> 8) & 0xff) | (((rol + 8) & 0xf) << 8); 134 134 } else if (imm & 0xc0000000) { 135 imm1 = O P2_IMM| ((imm >> 24) & 0xff) | ((rol & 0xf) << 8);135 imm1 = Op2Immediate | ((imm >> 24) & 0xff) | ((rol & 0xf) << 8); 136 136 imm <<= 8; 137 137 rol += 4; … … 153 153 154 154 if ((imm & 0x00ffffff) == 0) 155 imm2 = O P2_IMM| (imm >> 24) | ((rol & 0xf) << 8);155 imm2 = Op2Immediate | (imm >> 24) | ((rol & 0xf) << 8); 156 156 else 157 157 return 0; … … 167 167 } 168 168 169 imm1 = O P2_IMM| ((imm >> 24) & 0xff) | ((rol & 0xf) << 8);169 imm1 = Op2Immediate | ((imm >> 24) & 0xff) | ((rol & 0xf) << 8); 170 170 imm <<= 8; 171 171 rol += 4; … … 182 182 183 183 if ((imm & 0x00ffffff) == 0) 184 imm2 = O P2_IMM| (imm >> 24) | ((rol & 0xf) << 8);184 imm2 = Op2Immediate | (imm >> 24) | ((rol & 0xf) << 8); 185 185 else 186 186 return 0; … … 204 204 // Do it by 1 instruction 205 205 tmp = getOp2(imm); 206 if (tmp != I NVALID_IMM)206 if (tmp != InvalidImmediate) 207 207 return tmp; 208 208 209 209 tmp = getOp2(~imm); 210 if (tmp != I NVALID_IMM) {210 if (tmp != InvalidImmediate) { 211 211 if (invert) 212 return tmp | O P2_INV_IMM;212 return tmp | Op2InvertedImmediate; 213 213 mvn_r(tmpReg, tmp); 214 214 return tmpReg; … … 224 224 // Do it by 1 instruction 225 225 tmp = getOp2(imm); 226 if (tmp != I NVALID_IMM) {226 if (tmp != InvalidImmediate) { 227 227 mov_r(dest, tmp); 228 228 return; … … 230 230 231 231 tmp = getOp2(~imm); 232 if (tmp != I NVALID_IMM) {232 if (tmp != InvalidImmediate) { 233 233 mvn_r(dest, tmp); 234 234 return; … … 242 242 #if WTF_ARM_ARCH_AT_LEAST(7) 243 243 ARMWord tmp = getImm16Op2(imm); 244 if (tmp != I NVALID_IMM) {244 if (tmp != InvalidImmediate) { 245 245 movw_r(dest, tmp); 246 246 return dest; … … 269 269 dtr_u(transferType, srcDst, base, offset); 270 270 else if (offset <= 0xfffff) { 271 add_r(ARMRegisters::S0, base, O P2_IMM| (offset >> 12) | (10 << 8));271 add_r(ARMRegisters::S0, base, Op2Immediate | (offset >> 12) | (10 << 8)); 272 272 dtr_u(transferType, srcDst, ARMRegisters::S0, (offset & 0xfff)); 273 273 } else { … … 279 279 dtr_d(transferType, srcDst, base, -offset); 280 280 else if (offset >= -0xfffff) { 281 sub_r(ARMRegisters::S0, base, O P2_IMM| (-offset >> 12) | (10 << 8));281 sub_r(ARMRegisters::S0, base, Op2Immediate | (-offset >> 12) | (10 << 8)); 282 282 dtr_d(transferType, srcDst, ARMRegisters::S0, (-offset & 0xfff)); 283 283 } else { … … 308 308 dtrh_u(transferType, srcDst, base, getOp2Half(offset)); 309 309 else if (offset <= 0xffff) { 310 add_r(ARMRegisters::S0, base, O P2_IMM| (offset >> 8) | (12 << 8));310 add_r(ARMRegisters::S0, base, Op2Immediate | (offset >> 8) | (12 << 8)); 311 311 dtrh_u(transferType, srcDst, ARMRegisters::S0, getOp2Half(offset & 0xff)); 312 312 } else { … … 318 318 dtrh_d(transferType, srcDst, base, getOp2Half(-offset)); 319 319 else if (offset >= -0xffff) { 320 sub_r(ARMRegisters::S0, base, O P2_IMM| (-offset >> 8) | (12 << 8));320 sub_r(ARMRegisters::S0, base, Op2Immediate | (-offset >> 8) | (12 << 8)); 321 321 dtrh_d(transferType, srcDst, ARMRegisters::S0, getOp2Half(-offset & 0xff)); 322 322 } else { … … 347 347 } 348 348 if (offset <= 0x3ffff && offset >= 0) { 349 add_r(ARMRegisters::S0, base, O P2_IMM| (offset >> 10) | (11 << 8));349 add_r(ARMRegisters::S0, base, Op2Immediate | (offset >> 10) | (11 << 8)); 350 350 fdtr_u(transferType, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff); 351 351 return; … … 358 358 } 359 359 if (offset <= 0x3ffff && offset >= 0) { 360 sub_r(ARMRegisters::S0, base, O P2_IMM| (offset >> 10) | (11 << 8));360 sub_r(ARMRegisters::S0, base, Op2Immediate | (offset >> 10) | (11 << 8)); 361 361 fdtr_d(transferType, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff); 362 362 return; … … 393 393 if (*addr != InvalidBranchTarget) { 394 394 if (!(iter->m_offset & 1)) { 395 intptr_t difference = reinterpret_cast_ptr<ARMWord*>(data + *addr) - (ldrAddr + DefaultPrefetch ing);396 397 if ((difference <= BOFFSET_MAX && difference >= BOFFSET_MIN)) {398 *ldrAddr = B | getConditionalField(*ldrAddr) | (difference & B RANCH_MASK);395 intptr_t difference = reinterpret_cast_ptr<ARMWord*>(data + *addr) - (ldrAddr + DefaultPrefetchOffset); 396 397 if ((difference <= MaximumBranchOffsetDistance && difference >= MinimumBranchOffsetDistance)) { 398 *ldrAddr = B | getConditionalField(*ldrAddr) | (difference & BranchOffsetMask); 399 399 continue; 400 400 }
Note:
See TracChangeset
for help on using the changeset viewer.