[webkit-changes] [WebKit/WebKit] 748f4d: REGRESSION(269608 at main): 32-bit shifts are used to...
Commit Queue
noreply at github.com
Wed Oct 25 14:39:10 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 748f4d4620ab6f3e533219ec3d365d648aca2ff0
https://github.com/WebKit/WebKit/commit/748f4d4620ab6f3e533219ec3d365d648aca2ff0
Author: Mark Lam <mark.lam at apple.com>
Date: 2023-10-25 (Wed, 25 Oct 2023)
Changed paths:
M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
M Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
M Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h
M Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
Log Message:
-----------
REGRESSION(269608 at main): 32-bit shifts are used to zero out upper 32-bits after all.
https://bugs.webkit.org/show_bug.cgi?id=263660
rdar://117475957
Reviewed by Yusuke Suzuki.
In https://commits.webkit.org/269608@main, we added a peephole optimization to reduce shifts
to moves if the shift amount is 0. However, this is only correct if shift instructions are
never used indirectly to zero out the upper 32-bits of the register. It turns out that the
JIT backends do rely on 32-bit shifts to zero out the upper 32-bits.
Changes made:
1. Revert 269608 at main 32-bit shift changes.
4. Add some MIPS and RISCV64 files to the Xcode project to make it easier to work with them
in Xcode. Also ensure that while they are added to the project, they aren't included as
part of any build.
* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::lshift32):
(JSC::MacroAssemblerARM64::rotateRight32):
(JSC::MacroAssemblerARM64::rshift32):
(JSC::MacroAssemblerARM64::urshift32):
* Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::lshift32):
(JSC::MacroAssemblerMIPS::rshift32):
(JSC::MacroAssemblerMIPS::urshift32):
* Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::lshift32):
(JSC::MacroAssemblerRISCV64::rshift32):
(JSC::MacroAssemblerRISCV64::urshift32):
* Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::lshift32):
(JSC::MacroAssemblerX86Common::rshift32):
(JSC::MacroAssemblerX86Common::urshift32):
(JSC::MacroAssemblerX86Common::rotateRight32):
(JSC::MacroAssemblerX86Common::rotateLeft32):
Canonical link: https://commits.webkit.org/269785@main
More information about the webkit-changes
mailing list