Changeset 59527 in webkit for trunk/JavaScriptCore/assembler
- Timestamp:
- May 15, 2010, 1:58:57 AM (15 years ago)
- Location:
- trunk/JavaScriptCore/assembler
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/assembler/MIPSAssembler.h
r56759 r59527 393 393 } 394 394 395 void srl(RegisterID rd, RegisterID rt, int shamt) 396 { 397 emitInst(0x00000002 | (rd << OP_SH_RD) | (rt << OP_SH_RT) 398 | ((shamt & 0x1f) << OP_SH_SHAMT)); 399 } 400 401 void srlv(RegisterID rd, RegisterID rt, RegisterID rs) 402 { 403 emitInst(0x00000006 | (rd << OP_SH_RD) | (rt << OP_SH_RT) 404 | (rs << OP_SH_RS)); 405 } 406 395 407 void lbu(RegisterID rt, RegisterID rs, int offset) 396 408 { … … 548 560 emitInst(0x44000000 | (fs << OP_SH_FS) | (rt << OP_SH_RT)); 549 561 copDelayNop(); 562 } 563 564 void sqrtd(FPRegisterID fd, FPRegisterID fs) 565 { 566 emitInst(0x46200004 | (fd << OP_SH_FD) | (fs << OP_SH_FS)); 550 567 } 551 568 -
trunk/JavaScriptCore/assembler/MacroAssemblerMIPS.h
r56759 r59527 320 320 } 321 321 322 void urshift32(RegisterID shiftAmount, RegisterID dest) 323 { 324 m_assembler.srlv(dest, dest, shiftAmount); 325 } 326 327 void urshift32(Imm32 imm, RegisterID dest) 328 { 329 m_assembler.srl(dest, dest, imm.m_value); 330 } 331 322 332 void sub32(RegisterID src, RegisterID dest) 323 333 { … … 436 446 } 437 447 448 void sqrtDouble(FPRegisterID src, FPRegisterID dst) 449 { 450 m_assembler.sqrtd(dst, src); 451 } 452 438 453 // Memory access operations: 439 454 // … … 608 623 { 609 624 return loadPtrWithPatchToLEA(address, dest); 625 } 626 627 /* Need to use zero-extened load half-word for load16. */ 628 void load16(ImplicitAddress address, RegisterID dest) 629 { 630 if (address.offset >= -32768 && address.offset <= 32767 631 && !m_fixedWidth) 632 m_assembler.lhu(dest, address.base, address.offset); 633 else { 634 /* 635 lui addrTemp, (offset + 0x8000) >> 16 636 addu addrTemp, addrTemp, base 637 lhu dest, (offset & 0xffff)(addrTemp) 638 */ 639 m_assembler.lui(addrTempRegister, (address.offset + 0x8000) >> 16); 640 m_assembler.addu(addrTempRegister, addrTempRegister, address.base); 641 m_assembler.lhu(dest, addrTempRegister, address.offset); 642 } 610 643 } 611 644 … … 772 805 773 806 bool supportsFloatingPointTruncate() const 807 { 808 #if WTF_MIPS_DOUBLE_FLOAT && WTF_MIPS_ISA_AT_LEAST(2) 809 return true; 810 #else 811 return false; 812 #endif 813 } 814 815 bool supportsFloatingPointSqrt() const 774 816 { 775 817 #if WTF_MIPS_DOUBLE_FLOAT && WTF_MIPS_ISA_AT_LEAST(2)
Note:
See TracChangeset
for help on using the changeset viewer.