[Webkit-unassigned] [Bug 136569] New: offlineasm generates suboptimal code for load/store on ARM64

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Sep 5 03:16:08 PDT 2014


https://bugs.webkit.org/show_bug.cgi?id=136569

           Summary: offlineasm generates suboptimal code for load/store on
                    ARM64
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: akiss at inf.u-szeged.hu


For every load/store instruction, where the address is in the form of base + offset, and the offset is out of range -255..4095, the ARM64 backend applies the standard risc lowering. That is, as the documentation of riscLowerMalformedAddresses describes:

loadp 10000[foo], bar

will become

move 10000, tmp
addp foo, tmp
loadp 0[tmp], bar

Which, in ARM64, means that, e.g.,

storep cfr, VM::topVMEntryFrame[vm]

becomes

movz x17, #45424, lsl #0
add x17, x17, x1
str x29, [x17, #0]

However, ARM64 can do better:

movz x17, #45424, lsl #0
str x29, [x1, x17, lsl #0]

This would achieve the same result with less instructions.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list