Changeset 215237 in webkit for trunk/Source/JavaScriptCore/assembler
- Timestamp:
- Apr 11, 2017, 10:03:59 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
r215226 r215237 442 442 m_assembler.orInsn(dataTempRegister, dataTempRegister, src); 443 443 store32(dataTempRegister, dest.m_ptr); 444 } 445 446 void or32(TrustedImm32 imm, Address address) 447 { 448 if (address.offset >= -32768 && address.offset <= 32767 449 && !m_fixedWidth) { 450 /* 451 lw dataTemp, offset(base) 452 li immTemp, imm 453 or dataTemp, dataTemp, immTemp 454 sw dataTemp, offset(base) 455 */ 456 m_assembler.lw(dataTempRegister, address.base, address.offset); 457 if (imm.m_value >= 0 && imm.m_value <= 65535 && !m_fixedWidth) 458 m_assembler.ori(dataTempRegister, dataTempRegister, imm.m_value); 459 else { 460 move(imm, immTempRegister); 461 m_assembler.orInsn(dataTempRegister, dataTempRegister, immTempRegister); 462 } 463 m_assembler.sw(dataTempRegister, address.base, address.offset); 464 } else { 465 /* 466 lui addrTemp, (offset + 0x8000) >> 16 467 addu addrTemp, addrTemp, base 468 lw dataTemp, (offset & 0xffff)(addrTemp) 469 li immtemp, imm 470 or dataTemp, dataTemp, immTemp 471 sw dataTemp, (offset & 0xffff)(addrTemp) 472 */ 473 m_assembler.lui(addrTempRegister, (address.offset + 0x8000) >> 16); 474 m_assembler.addu(addrTempRegister, addrTempRegister, address.base); 475 m_assembler.lw(dataTempRegister, addrTempRegister, address.offset); 476 477 if (imm.m_value >= 0 && imm.m_value <= 65535 && !m_fixedWidth) 478 m_assembler.ori(dataTempRegister, dataTempRegister, imm.m_value); 479 else { 480 move(imm, immTempRegister); 481 m_assembler.orInsn(dataTempRegister, dataTempRegister, immTempRegister); 482 } 483 m_assembler.sw(dataTempRegister, addrTempRegister, address.offset); 484 } 444 485 } 445 486
Note:
See TracChangeset
for help on using the changeset viewer.