[webkit-changes] [WebKit/WebKit] 3d230d: [JSC] ARM64 double comparison should use fcmp_0 wh...

Yusuke Suzuki noreply at github.com
Tue Jun 13 13:56:32 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3d230d1c397a67f56ffe6a707fc43eaa21611ed1
      https://github.com/WebKit/WebKit/commit/3d230d1c397a67f56ffe6a707fc43eaa21611ed1
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-06-13 (Tue, 13 Jun 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssembler.h
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
    M Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
    M Source/JavaScriptCore/b3/B3LowerToAir.cpp
    M Source/JavaScriptCore/b3/B3ValueInlines.h
    M Source/JavaScriptCore/b3/air/AirOpcode.opcodes

  Log Message:
  -----------
  [JSC] ARM64 double comparison should use fcmp_0 when it is done with 0.0
https://bugs.webkit.org/show_bug.cgi?id=257997
rdar://110684425

Reviewed by Justin Michaud.

This patch integrates fcmp_0 into B3/Air ARM64 code generation. When
double / float values are compared with 0.0, then we can use fcmp_0
instead of fcmp with zero-cleared FPRegisterID. Reducing register pressure
and code size.

* Source/JavaScriptCore/assembler/MacroAssembler.h:
(JSC::MacroAssembler::compareDoubleWithZero):
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::branchDoubleWithZero):
(JSC::MacroAssemblerARM64::branchFloatWithZero):
(JSC::MacroAssemblerARM64::compareDouble):
(JSC::MacroAssemblerARM64::compareFloat):
(JSC::MacroAssemblerARM64::compareDoubleWithZero):
(JSC::MacroAssemblerARM64::compareFloatWithZero):
(JSC::MacroAssemblerARM64::floatingPointCompare):
* Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::branchFloatWithZero):
(JSC::MacroAssemblerARMv7::branchDoubleWithZero):
(JSC::MacroAssemblerARMv7::compareFloatWithZero):
* Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::branchFloatWithZero):
(JSC::MacroAssemblerRISCV64::branchDoubleWithZero):
(JSC::MacroAssemblerRISCV64::compareDoubleWithZero):
(JSC::MacroAssemblerRISCV64::compareFloatWithZero):
* Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::branchDoubleWithZero):
(JSC::MacroAssemblerX86Common::branchFloatWithZero):
(JSC::MacroAssemblerX86Common::compareDoubleWithZero):
(JSC::MacroAssemblerX86Common::compareFloatWithZero):
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:

Canonical link: https://commits.webkit.org/265133@main




More information about the webkit-changes mailing list