[zlib] Adding PMULL based CRC-32 for aarch64

Using the polynomial multiplication instruction allows to improve a bit
more the decompression speed of gzipped content in zlib.

The average gains are not massive though (around +4.9%), but is more expressive
for some relevant content (e.g. +10% for HTMLx4 & JPEG, +6% for JS) in more
recent chip designs.

Since Chrome is distributed as a 64bit binary (i.e. aarch64) only for
higher end devices, it should be safe from a performance perspective.

For lower spec devices, the same serial crc32 code using the crypto
extensions is used, therefore no change on behavior for 32bit.

Bug: 873725
Change-Id: I33b9b345b82b5256ec922324984f9a371949bbe6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2422723
Reviewed-by: Chris Blume <cblume@chromium.org>
Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1006184}
GitOrigin-RevId: a0771caebe87477558454cc6d793562e3afe74ac
5 files changed