Bug 150688

Summary: Air::handleCalleeSaves shouldn't save/restore the frame pointer
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 150279    
Attachments:
Description Flags
the patch msaboff: review+

Description Filip Pizlo 2015-10-29 13:01:26 PDT
Patch forthcoming.
Comment 1 Filip Pizlo 2015-10-29 16:55:03 PDT
Created attachment 264366 [details]
the patch
Comment 2 Saam Barati 2015-10-29 17:27:31 PDT
Comment on attachment 264366 [details]
the patch

r=me
Comment 3 Michael Saboff 2015-10-29 17:31:40 PDT
Comment on attachment 264366 [details]
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=264366&action=review

r-

> Source/JavaScriptCore/b3/air/AirHandleCalleeSaves.cpp:55
>      usedCalleeSaves.filter(RegisterSet::calleeSaveRegisters());
> +    usedCalleeSaves.exclude(RegisterSet::stackRegisters()); // We don't need to save FP here.

RegisterSet::calleeSaveRegisters() already contains the frame pointer.  In all cases, it uses the native register name.
Comment 4 Michael Saboff 2015-10-29 17:33:38 PDT
Comment on attachment 264366 [details]
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=264366&action=review

r+

>> Source/JavaScriptCore/b3/air/AirHandleCalleeSaves.cpp:55
>>      usedCalleeSaves.filter(RegisterSet::calleeSaveRegisters());
>> +    usedCalleeSaves.exclude(RegisterSet::stackRegisters()); // We don't need to save FP here.
> 
> RegisterSet::calleeSaveRegisters() already contains the frame pointer.  In all cases, it uses the native register name.

Sorry, didn't see the .filter for RegisterSet::calleeSaveRegisters().
Comment 5 Filip Pizlo 2015-10-29 18:47:20 PDT
Landed in http://trac.webkit.org/changeset/191771