Changeset 215237 in webkit
- Timestamp:
- Apr 11, 2017 10:03:59 AM (7 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r215235 r215237 1 2017-04-11 Guillaume Emont <guijemont@igalia.com> 2 3 [jsc] Add missing MacroAssemblerMIPS::or32() implementation 4 https://bugs.webkit.org/show_bug.cgi?id=169714 5 6 Reviewed by Michael Catanzaro. 7 8 * assembler/MacroAssemblerMIPS.h: 9 (JSC::MacroAssemblerMIPS::or32): 10 Added or32(TrustedImm32, Address). 11 1 12 2017-04-11 Joseph Pecoraro <pecoraro@apple.com> 2 13 -
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.