Changeset 192267 in webkit
- Timestamp:
- Nov 10, 2015 1:52:01 PM (8 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r192260 r192267 1 2015-11-10 Michael Saboff <msaboff@apple.com> 2 3 X86_64 support for compareDouble(DoubleCondition, FPRegisterID left, FPRegisterID right, RegisterID dest) 4 https://bugs.webkit.org/show_bug.cgi?id=151009 5 6 Reviewed by Filip Pizlo. 7 8 Added compareDouble() macro assembler function and the supporting setnp_r() and setp_r() X86 assembler functions. 9 Hand tested. 10 11 * assembler/MacroAssemblerX86_64.h: 12 (JSC::MacroAssemblerX86_64::compare64): 13 (JSC::MacroAssemblerX86_64::compareDouble): 14 (JSC::MacroAssemblerX86_64::branch64): 15 * assembler/X86Assembler.h: 16 (JSC::X86Assembler::setnz_r): 17 (JSC::X86Assembler::setnp_r): 18 (JSC::X86Assembler::setp_r): 19 (JSC::X86Assembler::cdq): 20 1 21 2015-11-10 Saam barati <sbarati@apple.com> 2 22 -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
r192051 r192267 578 578 m_assembler.movzbl_rr(dest, dest); 579 579 } 580 580 581 void compareDouble(DoubleCondition cond, FPRegisterID left, FPRegisterID right, RegisterID dest) 582 { 583 if (cond & DoubleConditionBitInvert) 584 m_assembler.ucomisd_rr(left, right); 585 else 586 m_assembler.ucomisd_rr(right, left); 587 588 if (cond == DoubleEqual) { 589 if (left == right) { 590 m_assembler.setnp_r(dest); 591 return; 592 } 593 594 Jump isUnordered(m_assembler.jp()); 595 m_assembler.sete_r(dest); 596 isUnordered.link(this); 597 return; 598 } 599 600 if (cond == DoubleNotEqualOrUnordered) { 601 if (left == right) { 602 m_assembler.setp_r(dest); 603 return; 604 } 605 606 m_assembler.setp_r(dest); 607 m_assembler.setne_r(dest); 608 return; 609 } 610 611 ASSERT(!(cond & DoubleConditionBitSpecial)); 612 m_assembler.setCC_r(static_cast<X86Assembler::Condition>(cond & ~DoubleConditionBits), dest); 613 } 614 581 615 Jump branch64(RelationalCondition cond, RegisterID left, RegisterID right) 582 616 { -
trunk/Source/JavaScriptCore/assembler/X86Assembler.h
r192131 r192267 1278 1278 } 1279 1279 1280 void setnp_r(RegisterID dst) 1281 { 1282 m_formatter.twoByteOp8(setccOpcode(ConditionNP), (GroupOpcodeID)0, dst); 1283 } 1284 1285 void setp_r(RegisterID dst) 1286 { 1287 m_formatter.twoByteOp8(setccOpcode(ConditionP), (GroupOpcodeID)0, dst); 1288 } 1289 1280 1290 // Various move ops: 1281 1291
Note: See TracChangeset
for help on using the changeset viewer.