• pierre.langlois's avatar
    ARM64: [turbofan] Avoid zero-extension after a 32-bit load · f07d2cdd
    pierre.langlois authored
    A load instruction will implicitely clear the top 32 bits when writing to a W
    register. This patch avoids generating a `mov` instruction to zero-extend the
    result in this case.
    
    For example, this occurs in the generated code for dispatching to the next
    bytecode in the interpreter:
    
      kind = BYTECODE_HANDLER
      name = LdaZero
      compiler = turbofan
      Instructions (size = 36)
      0x32e64c60     0  add x19, x19, #0x1 (1)
      0x32e64c64     4  ldrb w0, [x20, x19]
      0x32e64c68     8  mov w0, w0
                        ^^^^^^^^^^
      0x32e64c6c    12  lsl x0, x0, #3
      0x32e64c70    16  ldr x1, [x21, x0]
      0x32e64c74    20  movz x0, #0x0
      0x32e64c78    24  br x1
    
    BUG=
    
    Review-Url: https://codereview.chromium.org/1950013003
    Cr-Commit-Position: refs/heads/master@{#36038}
    f07d2cdd
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...