• Clemens Backes's avatar
    [wasm] Speed up WasmStringConcat builtin · ea626497
    Clemens Backes authored
    Tail call the StringAdd_CheckNone builtin. This also avoids the need to
    create a frame.
    
    X64 code before:
         0  55                   push rbp
         1  4889e5               REX.W movq rbp,rsp
         4  6a20                 push 0x20
         6  488b5500             REX.W movq rdx,[rbp+0x0]
         a  488b52f0             REX.W movq rdx,[rdx-0x10]
         e  8bb2c7000000         movl rsi,[rdx+0xc7]
        14  4903f6               REX.W addq rsi,r14
        17  e8a402f3ff           call 0x7f2effeb5a80 (StringAdd_CheckNone)
        1c  488be5               REX.W movq rsp,rbp
        1f  5d                   pop rbp
        20  c3                   retl
    
    X64 code after:
         0  488bd5               REX.W movq rdx,rbp
         3  488b52f0             REX.W movq rdx,[rdx-0x10]
         7  8bb2c7000000         movl rsi,[rdx+0xc7]
         d  4903f6               REX.W addq rsi,r14
        10  e9ab02f3ff           jmp 0x7fed7feb5a80 (StringAdd_CheckNone)
    
    R=jkummerow@chromium.org
    
    Bug: v8:12868
    Change-Id: Ie722fb57abcd649d2586aad2c4aca55ff218fe43
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3823127Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82340}
    ea626497
wasm.tq 43 KB