WebKit Bugzilla
Attachment 359866 Details for
Bug 193689
: [ARM] Check for negative zero instead of just zero
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193689-20190123122452.patch (text/plain), 2.65 KB, created by
Dominik Inführ
on 2019-01-23 03:24:54 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Dominik Inführ
Created:
2019-01-23 03:24:54 PST
Size:
2.65 KB
patch
obsolete
>Subversion Revision: 240329 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index da3d7033bf7c104ac55b926d4b344271732f0c68..565fff61a1bde4b3a0d846f70a6241d86e777850 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,16 @@ >+2019-01-22 Dominik Infuehr <dinfuehr@igalia.com> >+ >+ [ARM] Check for negative zero instead of just zero >+ https://bugs.webkit.org/show_bug.cgi?id=193689 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ ARM now performs a negative zero check in branchConvertDoubleToInt32 instead >+ of just bailing out for zero. >+ >+ * assembler/MacroAssemblerARMv7.h: >+ (JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32): >+ > 2019-01-22 Yusuke Suzuki <ysuzuki@apple.com> > > Unreviewed, fix initial global lexical binding epoch >diff --git a/Source/JavaScriptCore/assembler/ARMv7Assembler.h b/Source/JavaScriptCore/assembler/ARMv7Assembler.h >index f0b54a109457993b7ac039d94644f36971ae7fd1..6fe04e446231bb9419a57227101a1bcd7e8590ed 100644 >--- a/Source/JavaScriptCore/assembler/ARMv7Assembler.h >+++ b/Source/JavaScriptCore/assembler/ARMv7Assembler.h >@@ -172,6 +172,12 @@ namespace ARMRegisters { > return (FPSingleRegisterID)(reg << 1); > } > >+ inline FPSingleRegisterID asSingleUpper(FPDoubleRegisterID reg) >+ { >+ ASSERT(reg < d16); >+ return (FPSingleRegisterID)((reg << 1) + 1); >+ } >+ > inline FPDoubleRegisterID asDouble(FPSingleRegisterID reg) > { > ASSERT(!(reg & 1)); >diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h b/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h >index 197496a2276a982773ab2c56e0b249455cabd051..c1fbb4706c57148161b572cdea5e41c6cc1ad3cc 100644 >--- a/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h >+++ b/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h >@@ -1252,9 +1252,13 @@ public: > m_assembler.vcvt_signedToFloatingPoint(fpTempRegister, fpTempRegisterAsSingle()); > failureCases.append(branchDouble(DoubleNotEqualOrUnordered, src, fpTempRegister)); > >- // If the result is zero, it might have been -0.0, and the double comparison won't catch this! >- if (negZeroCheck) >- failureCases.append(branchTest32(Zero, dest)); >+ // Test for negative zero. >+ if (negZeroCheck) { >+ Jump valueIsNonZero = branchTest32(NonZero, dest); >+ m_assembler.vmov(dataTempRegister, ARMRegisters::asSingleUpper(src)); >+ failureCases.append(branch32(LessThan, dataTempRegister, TrustedImm32(0))); >+ valueIsNonZero.link(this); >+ } > } > > Jump branchDoubleNonZero(FPRegisterID reg, FPRegisterID)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193689
:
359788
|
359807
| 359866