Skip to content
Snippets Groups Projects
Commit ae16db55 authored by Adenilson Cavalcanti's avatar Adenilson Cavalcanti Committed by Commit Bot
Browse files

Remove use of inline ASM in insert_string_sse

It seems that some years ago clang@Windows didn't have the
proper intrinsic required, which prompted the use of inline
ASM.

It has a side effect in that it will allow compilation of the
optimized function within the same compilation unit while using regular
compiler flags (i.e. 'crc32' instruction on x86 requires some special
compiler flags).

Main issue is that inline ASM is blocked on dependencies (e.g. 'base')
that will be linked to NaCl.

The main idea here is to allow the whole Chromium code base to use the
highly optimized checksums in zlib (e.g. crc32 and Adler-32), exported
through an interface (i.e. base::Crc32()).

This patch fixes this issue by removing the use of inline ASM.

The workaround is to use clang/gcc 'target attributes' to instruct the
backend to use different code generation options for the optimized
function, see:
https://clang.llvm.org/docs/AttributeReference.html#target

Bug: 902789
Change-Id: I0d139268aefb8335310c0e3f6533006be9af6470
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1931272


Reviewed-by: default avatarAdenilson Cavalcanti <cavalcantii@chromium.org>
Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#718788}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ea6b9281bbf3ca08ccef8f5266f88de6f56c5ff6
parent 7c4128a1
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment