Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c20c54c79ae66f9d644a52d2331702492da083e2
      
https://github.com/WebKit/WebKit/commit/c20c54c79ae66f9d644a52d2331702492da083e2
  Author: Keith Miller <keith_mil...@apple.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp

  Log Message:
  -----------
  ARM64 MacroAssembler should support populationCount functions
https://bugs.webkit.org/show_bug.cgi?id=256771

Reviewed by Yusuke Suzuki.

Now that we have vector instructions we should support emitting inline code for 
population count. The new code matches the assembly emitted by GCC to do the 
population count. Clang uses a different instruction to sum the vector that we 
don't implement yet addlv vs GCC's addv. Although, those could be the synonyms 
for the same instruction, I didn't check.

* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::countPopulation32):
(JSC::MacroAssemblerARM64::countPopulation64):
(JSC::MacroAssemblerARM64::supportsCountPopulation):
* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::ExpressionType>::addI32Popcnt):
(JSC::Wasm::ExpressionType>::addI64Popcnt):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addI32Popcnt):
(JSC::Wasm::B3IRGenerator::addI64Popcnt):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::addI32Popcnt):
(JSC::Wasm::BBQJIT::addI64Popcnt):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to