Bug 208259 - Air O0 shouldn't spill all callee saves
Summary: Air O0 shouldn't spill all callee saves
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Saam Barati
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-02-26 13:48 PST by Saam Barati
Modified: 2020-02-26 13:48 PST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Saam Barati 2020-02-26 13:48:59 PST
Not sure what to do, maybe emit a nop sled, or maybe emit out of line jump, but it's silly what we do on arm64:

prologue:
     0xfaec70010:    stur    x19, [fp, #-144]
     0xfaec70014:    stur    x20, [fp, #-136]
     0xfaec70018:    stur    x21, [fp, #-128]
     0xfaec7001c:    stur    x22, [fp, #-120]
     0xfaec70020:    stur    x23, [fp, #-112]
     0xfaec70024:    stur    x24, [fp, #-104]
     0xfaec70028:    stur    x25, [fp, #-96]
     0xfaec7002c:    stur    x26, [fp, #-88]
     0xfaec70030:    stur    x27, [fp, #-80]
     0xfaec70034:    stur    x28, [fp, #-72]
     0xfaec70038:    stur    d8, [fp, #-64]
     0xfaec7003c:    stur    d9, [fp, #-56]
     0xfaec70040:    stur    d10, [fp, #-48]
     0xfaec70044:    stur    d11, [fp, #-40]
     0xfaec70048:    stur    d12, [fp, #-32]
     0xfaec7004c:    stur    d13, [fp, #-24]
     0xfaec70050:    stur    d14, [fp, #-16]
     0xfaec70054:    stur    d15, [fp, #-8]


epilogue:
     0xfaec70060:    ldur    x19, [fp, #-144]
     0xfaec70064:    ldur    x20, [fp, #-136]
     0xfaec70068:    ldur    x21, [fp, #-128]
     0xfaec7006c:    ldur    x22, [fp, #-120]
     0xfaec70070:    ldur    x23, [fp, #-112]
     0xfaec70074:    ldur    x24, [fp, #-104]
     0xfaec70078:    ldur    x25, [fp, #-96]
     0xfaec7007c:    ldur    x26, [fp, #-88]
     0xfaec70080:    ldur    x27, [fp, #-80]
     0xfaec70084:    ldur    x28, [fp, #-72]
     0xfaec70088:    ldur    d8, [fp, #-64]
     0xfaec7008c:    ldur    d9, [fp, #-56]
     0xfaec70090:    ldur    d10, [fp, #-48]
     0xfaec70094:    ldur    d11, [fp, #-40]
     0xfaec70098:    ldur    d12, [fp, #-32]
     0xfaec7009c:    ldur    d13, [fp, #-24]
     0xfaec700a0:    ldur    d14, [fp, #-16]
     0xfaec700a4:    ldur    d15, [fp, #-8]