• ivica.bogosavljevic's avatar
    MIPS64: Port `ARM64: [turbofan] Avoid zero-extension after a 32-bit load` · 4125ba8b
    ivica.bogosavljevic authored
    Port f07d2cdd
    
    Original commit message:
    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
    
    Review-Url: https://codereview.chromium.org/2469253002
    Cr-Commit-Position: refs/heads/master@{#40758}
    4125ba8b
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
branch-elimination-unittest.cc Loading commit data...
checkpoint-elimination-unittest.cc Loading commit data...
common-operator-reducer-unittest.cc Loading commit data...
common-operator-unittest.cc Loading commit data...
compiler-test-utils.h Loading commit data...
control-equivalence-unittest.cc Loading commit data...
control-flow-optimizer-unittest.cc Loading commit data...
dead-code-elimination-unittest.cc Loading commit data...
diamond-unittest.cc Loading commit data...
effect-control-linearizer-unittest.cc Loading commit data...
escape-analysis-unittest.cc Loading commit data...
graph-reducer-unittest.cc Loading commit data...
graph-reducer-unittest.h Loading commit data...
graph-trimmer-unittest.cc Loading commit data...
graph-unittest.cc Loading commit data...
graph-unittest.h Loading commit data...
instruction-selector-unittest.cc Loading commit data...
instruction-selector-unittest.h Loading commit data...
instruction-sequence-unittest.cc Loading commit data...
instruction-sequence-unittest.h Loading commit data...
instruction-unittest.cc Loading commit data...
int64-lowering-unittest.cc Loading commit data...
js-builtin-reducer-unittest.cc Loading commit data...
js-create-lowering-unittest.cc Loading commit data...
js-intrinsic-lowering-unittest.cc Loading commit data...
js-operator-unittest.cc Loading commit data...
js-typed-lowering-unittest.cc Loading commit data...
linkage-tail-call-unittest.cc Loading commit data...
live-range-builder.h Loading commit data...
live-range-unittest.cc Loading commit data...
liveness-analyzer-unittest.cc Loading commit data...
load-elimination-unittest.cc Loading commit data...
loop-peeling-unittest.cc Loading commit data...
machine-operator-reducer-unittest.cc Loading commit data...
machine-operator-unittest.cc Loading commit data...
move-optimizer-unittest.cc Loading commit data...
node-cache-unittest.cc Loading commit data...
node-matchers-unittest.cc Loading commit data...
node-properties-unittest.cc Loading commit data...
node-test-utils.cc Loading commit data...
node-test-utils.h Loading commit data...
node-unittest.cc Loading commit data...
opcodes-unittest.cc Loading commit data...
register-allocator-unittest.cc Loading commit data...
schedule-unittest.cc Loading commit data...
scheduler-rpo-unittest.cc Loading commit data...
scheduler-unittest.cc Loading commit data...
simplified-operator-reducer-unittest.cc Loading commit data...
simplified-operator-unittest.cc Loading commit data...
state-values-utils-unittest.cc Loading commit data...
tail-call-optimization-unittest.cc Loading commit data...
typed-optimization-unittest.cc Loading commit data...
typer-unittest.cc Loading commit data...
value-numbering-reducer-unittest.cc Loading commit data...
zone-stats-unittest.cc Loading commit data...