Changeset 125541 in webkit for trunk/Source/JavaScriptCore/assembler/ARMAssembler.cpp
- Timestamp:
- Aug 14, 2012, 4:28:25 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/ARMAssembler.cpp
r124930 r125541 188 188 189 189 if (positive) { 190 mov _r(reg, imm1);191 orr _r(reg, reg, imm2);190 mov(reg, imm1); 191 orr(reg, reg, imm2); 192 192 } else { 193 mvn _r(reg, imm1);194 bic _r(reg, reg, imm2);193 mvn(reg, imm1); 194 bic(reg, reg, imm2); 195 195 } 196 196 … … 211 211 if (invert) 212 212 return tmp | Op2InvertedImmediate; 213 mvn _r(tmpReg, tmp);213 mvn(tmpReg, tmp); 214 214 return tmpReg; 215 215 } … … 225 225 tmp = getOp2(imm); 226 226 if (tmp != InvalidImmediate) { 227 mov _r(dest, tmp);227 mov(dest, tmp); 228 228 return; 229 229 } … … 231 231 tmp = getOp2(~imm); 232 232 if (tmp != InvalidImmediate) { 233 mvn _r(dest, tmp);233 mvn(dest, tmp); 234 234 return; 235 235 } … … 243 243 ARMWord tmp = getImm16Op2(imm); 244 244 if (tmp != InvalidImmediate) { 245 movw _r(dest, tmp);245 movw(dest, tmp); 246 246 return dest; 247 247 } 248 movw _r(dest, getImm16Op2(imm & 0xffff));249 movt _r(dest, getImm16Op2(imm >> 16));248 movw(dest, getImm16Op2(imm & 0xffff)); 249 movt(dest, getImm16Op2(imm >> 16)); 250 250 return dest; 251 251 #else … … 256 256 return dest; 257 257 258 ldr _imm(dest, imm);258 ldrImmediate(dest, imm); 259 259 return dest; 260 260 #endif … … 267 267 if (offset >= 0) { 268 268 if (offset <= 0xfff) 269 dtr _u(transferType, srcDst, base, offset);269 dtrUp(transferType, srcDst, base, offset); 270 270 else if (offset <= 0xfffff) { 271 add _r(ARMRegisters::S0, base, Op2Immediate | (offset >> 12) | (10 << 8));272 dtr _u(transferType, srcDst, ARMRegisters::S0, (offset & 0xfff));271 add(ARMRegisters::S0, base, Op2Immediate | (offset >> 12) | (10 << 8)); 272 dtrUp(transferType, srcDst, ARMRegisters::S0, (offset & 0xfff)); 273 273 } else { 274 274 moveImm(offset, ARMRegisters::S0); 275 dtr _ur(transferType, srcDst, base, ARMRegisters::S0);275 dtrUpRegister(transferType, srcDst, base, ARMRegisters::S0); 276 276 } 277 277 } else { 278 278 if (offset >= -0xfff) 279 dtr _d(transferType, srcDst, base, -offset);279 dtrDown(transferType, srcDst, base, -offset); 280 280 else if (offset >= -0xfffff) { 281 sub _r(ARMRegisters::S0, base, Op2Immediate | (-offset >> 12) | (10 << 8));282 dtr _d(transferType, srcDst, ARMRegisters::S0, (-offset & 0xfff));281 sub(ARMRegisters::S0, base, Op2Immediate | (-offset >> 12) | (10 << 8)); 282 dtrDown(transferType, srcDst, ARMRegisters::S0, (-offset & 0xfff)); 283 283 } else { 284 284 moveImm(offset, ARMRegisters::S0); 285 dtr _ur(transferType, srcDst, base, ARMRegisters::S0);285 dtrUpRegister(transferType, srcDst, base, ARMRegisters::S0); 286 286 } 287 287 } … … 294 294 295 295 if (!offset) { 296 dtr _ur(transferType, srcDst, base, op2);296 dtrUpRegister(transferType, srcDst, base, op2); 297 297 return; 298 298 } 299 299 300 add _r(ARMRegisters::S1, base, op2);300 add(ARMRegisters::S1, base, op2); 301 301 dataTransfer32(transferType, srcDst, ARMRegisters::S1, offset); 302 302 } … … 306 306 if (offset >= 0) { 307 307 if (offset <= 0xff) 308 dtrh_u(transferType, srcDst, base, getOp2Half(offset));308 halfDtrUp(transferType, srcDst, base, getOp2Half(offset)); 309 309 else if (offset <= 0xffff) { 310 add _r(ARMRegisters::S0, base, Op2Immediate | (offset >> 8) | (12 << 8));311 dtrh_u(transferType, srcDst, ARMRegisters::S0, getOp2Half(offset & 0xff));310 add(ARMRegisters::S0, base, Op2Immediate | (offset >> 8) | (12 << 8)); 311 halfDtrUp(transferType, srcDst, ARMRegisters::S0, getOp2Half(offset & 0xff)); 312 312 } else { 313 313 moveImm(offset, ARMRegisters::S0); 314 dtrh_ur(transferType, srcDst, base, ARMRegisters::S0);314 halfDtrUpRegister(transferType, srcDst, base, ARMRegisters::S0); 315 315 } 316 316 } else { 317 317 if (offset >= -0xff) 318 dtrh_d(transferType, srcDst, base, getOp2Half(-offset));318 halfDtrDown(transferType, srcDst, base, getOp2Half(-offset)); 319 319 else if (offset >= -0xffff) { 320 sub _r(ARMRegisters::S0, base, Op2Immediate | (-offset >> 8) | (12 << 8));321 dtrh_d(transferType, srcDst, ARMRegisters::S0, getOp2Half(-offset & 0xff));320 sub(ARMRegisters::S0, base, Op2Immediate | (-offset >> 8) | (12 << 8)); 321 halfDtrDown(transferType, srcDst, ARMRegisters::S0, getOp2Half(-offset & 0xff)); 322 322 } else { 323 323 moveImm(offset, ARMRegisters::S0); 324 dtrh_ur(transferType, srcDst, base, ARMRegisters::S0);324 halfDtrUpRegister(transferType, srcDst, base, ARMRegisters::S0); 325 325 } 326 326 } … … 330 330 { 331 331 if (!scale && !offset) { 332 dtrh_ur(transferType, srcDst, base, index);332 halfDtrUpRegister(transferType, srcDst, base, index); 333 333 return; 334 334 } 335 335 336 add _r(ARMRegisters::S1, base, lsl(index, scale));336 add(ARMRegisters::S1, base, lsl(index, scale)); 337 337 dataTransfer16(transferType, srcDst, ARMRegisters::S1, offset); 338 338 } … … 343 343 if (!(offset & 0x3)) { 344 344 if (offset <= 0x3ff && offset >= 0) { 345 fdtr_u(transferType, srcDst, base, offset >> 2);345 doubleDtrUp(transferType, srcDst, base, offset >> 2); 346 346 return; 347 347 } 348 348 if (offset <= 0x3ffff && offset >= 0) { 349 add _r(ARMRegisters::S0, base, Op2Immediate | (offset >> 10) | (11 << 8));350 fdtr_u(transferType, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff);349 add(ARMRegisters::S0, base, Op2Immediate | (offset >> 10) | (11 << 8)); 350 doubleDtrUp(transferType, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff); 351 351 return; 352 352 } … … 354 354 355 355 if (offset <= 0x3ff && offset >= 0) { 356 fdtr_d(transferType, srcDst, base, offset >> 2);356 doubleDtrDown(transferType, srcDst, base, offset >> 2); 357 357 return; 358 358 } 359 359 if (offset <= 0x3ffff && offset >= 0) { 360 sub _r(ARMRegisters::S0, base, Op2Immediate | (offset >> 10) | (11 << 8));361 fdtr_d(transferType, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff);360 sub(ARMRegisters::S0, base, Op2Immediate | (offset >> 10) | (11 << 8)); 361 doubleDtrDown(transferType, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff); 362 362 return; 363 363 } … … 366 366 367 367 moveImm(offset, ARMRegisters::S0); 368 add _r(ARMRegisters::S0, ARMRegisters::S0, base);369 fdtr_u(transferType, srcDst, ARMRegisters::S0, 0);368 add(ARMRegisters::S0, ARMRegisters::S0, base); 369 doubleDtrUp(transferType, srcDst, ARMRegisters::S0, 0); 370 370 } 371 371 372 372 void ARMAssembler::baseIndexTransferFloat(DataTransferTypeFloat transferType, FPRegisterID srcDst, RegisterID base, RegisterID index, int scale, int32_t offset) 373 373 { 374 add _r(ARMRegisters::S1, base, lsl(index, scale));374 add(ARMRegisters::S1, base, lsl(index, scale)); 375 375 dataTransferFloat(transferType, srcDst, ARMRegisters::S1, offset); 376 376 }
Note:
See TracChangeset
for help on using the changeset viewer.