WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-231362-20211007144522.patch (text/plain), 3.09 KB, created by
Mikhail R. Gadelha
on 2021-10-07 07:45:23 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Mikhail R. Gadelha
Created:
2021-10-07 07:45:23 PDT
Size:
3.09 KB
patch
obsolete
>Subversion Revision: 283613 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index 6c527fb6fef2065bea38748bc8a41b71d3f9c6f9..09685bf51ce0b7a235110eee96c3b2bfdde746ea 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,23 @@ >+2021-10-07 Mikhail R. Gadelha <mikhail@igalia.com> >+ >+ [JSC][32bit] Fix wrong branchAdd32 assembly for ARMv7 >+ https://bugs.webkit.org/show_bug.cgi?id=231362 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ After the unlinked baseline jit was merged, a new branchAdd32 method >+ needed to be implemented for ARMv7, however, the first version >+ submitted by me used the add32 method to perform the add before >+ branching. >+ >+ In this patch, we fix the call to add32 to instead call adds, so the >+ correct flags are set in the processor. >+ >+ (Patch co-authored with Geza Lore) >+ >+ * assembler/MacroAssemblerARMv7.h: >+ (JSC::MacroAssemblerARMv7::branchAdd32): >+ > 2021-10-06 Xan López <xan@igalia.com> > > [JSC][32bit] Remove a bunch of compiler warnings >diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h b/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h >index 2ef486031c0779e278d3aeae617a85dbfff86190..d13bb3cec7eb0fc1c9a0c94e7ca4e8faeef3eabd 100644 >--- a/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h >+++ b/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h >@@ -1845,15 +1845,41 @@ public: > return branchAdd32(cond, dest, imm, dest); > } > >- Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, AbsoluteAddress dest) >+ Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, AbsoluteAddress address) > { >- add32(imm, dest); >+ load32(address.m_ptr, dataTempRegister); >+ >+ // Do the add. >+ ARMThumbImmediate armImm = ARMThumbImmediate::makeEncodedImm(imm.m_value); >+ if (armImm.isValid()) >+ m_assembler.add_S(dataTempRegister, dataTempRegister, armImm); >+ else { >+ move(imm, addressTempRegister); >+ m_assembler.add_S(dataTempRegister, dataTempRegister, addressTempRegister); >+ } >+ >+ // Store the result. >+ store32(dataTempRegister, address.m_ptr); > return Jump(makeBranch(cond)); > } > >- Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, Address dest) >+ Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, Address address) > { >- add32(imm, dest); >+ ArmAddress aaddr = setupArmAddress(address); >+ load32(aaddr, dataTempRegister); >+ >+ // Do the add. >+ ARMThumbImmediate armImm = ARMThumbImmediate::makeEncodedImm(imm.m_value); >+ if (armImm.isValid()) >+ m_assembler.add_S(dataTempRegister, dataTempRegister, armImm); >+ else { >+ move(imm, addressTempRegister); >+ m_assembler.add_S(dataTempRegister, dataTempRegister, addressTempRegister); >+ aaddr = setupArmAddress(address); >+ } >+ >+ // Store the result. >+ store32(dataTempRegister, aaddr); > return Jump(makeBranch(cond)); > } >
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 231362
:
440502
|
440530
|
441077