Bug 147243 - jsc-tailcall: Repatching tail calls as jump should depend on the opcode, not the JS CallLinkInfo
Summary: jsc-tailcall: Repatching tail calls as jump should depend on the opcode, not ...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Basile Clement
URL:
Keywords:
Depends on:
Blocks: 146477
  Show dependency treegraph
 
Reported: 2015-07-23 16:46 PDT by Basile Clement
Modified: 2015-07-24 11:59 PDT (History)
2 users (show)

See Also:


Attachments
Patch (9.29 KB, patch)
2015-07-23 16:50 PDT, Basile Clement
no flags Details | Formatted Diff | Diff
Patch (9.71 KB, patch)
2015-07-24 11:26 PDT, Basile Clement
msaboff: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Basile Clement 2015-07-23 16:46:03 PDT
Patch forthcoming. The apparent source of failures on ARM devices for https://bugs.webkit.org/show_bug.cgi?id=146484 looks to be that we are patching NearCalls as jump when the CallLinkInfo tells us we are a tail call.

However even for a tail call, the slow path will still have an actual call (and not jump) opcode: we should be patching based on that information instead.
Comment 1 Basile Clement 2015-07-23 16:50:49 PDT
Created attachment 257408 [details]
Patch
Comment 2 Michael Saboff 2015-07-24 11:03:54 PDT
Comment on attachment 257408 [details]
Patch

Looks fine except could you change the "bool tail" to an enum.
Comment 3 Basile Clement 2015-07-24 11:26:56 PDT
Created attachment 257461 [details]
Patch

Patch with enum
Comment 4 Michael Saboff 2015-07-24 11:32:22 PDT
Comment on attachment 257461 [details]
Patch

r=me
Comment 5 Basile Clement 2015-07-24 11:59:15 PDT
Landed in https://trac.webkit.org/changeset/187354.