RESOLVED FIXED 146484
jsc-tailcall: Add new opcodes for tail calls
https://bugs.webkit.org/show_bug.cgi?id=146484
Summary jsc-tailcall: Add new opcodes for tail calls
Basile Clement
Reported 2015-06-30 17:43:44 PDT
For now, this opcode should be treated as a regular call in all backends.
Attachments
Patch (117.19 KB, patch)
2015-07-21 15:49 PDT, Basile Clement
msaboff: review+
ARM64 test output with failures (deleted)
2015-07-22 13:21 PDT, Michael Saboff
no flags
ARM32 test output with failures (16.93 MB, application/octet-stream)
2015-07-22 15:56 PDT, Michael Saboff
no flags
Basile Clement
Comment 1 2015-07-10 12:35:46 PDT
(In reply to comment #0) > For now, this opcode should be treated as a regular call in all backends.
Basile Clement
Comment 2 2015-07-10 12:36:13 PDT
(In reply to comment #1) > (In reply to comment #0) > > For now, this opcode should be treated as a regular call in all backends. (Oops, messed this up) We should not do this, since it is a semantics change. Instead, we should implement this in the LLint and baseline JIT first, then progressively implement it in the DFG and FTL.
Basile Clement
Comment 3 2015-07-21 15:49:06 PDT
Michael Saboff
Comment 4 2015-07-22 10:18:05 PDT
Comment on attachment 257212 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=257212&action=review r=me with minor fix > Source/JavaScriptCore/llint/LowLevelInterpreter.asm:609 > + addp CallerFrameAndPCSize, sp I don't think ARMv7 will allow you to do math with sp register. You'll probably need to use a temp and then move result to sp.
Mark Lam
Comment 5 2015-07-22 10:19:36 PDT
(In reply to comment #4) > > Source/JavaScriptCore/llint/LowLevelInterpreter.asm:609 > > + addp CallerFrameAndPCSize, sp > > I don't think ARMv7 will allow you to do math with sp register. You'll > probably need to use a temp and then move result to sp. Are you sure? I thought ARMv7 does allow it (hardware-wise). Should just try a build and see what gets generated.
Basile Clement
Comment 6 2015-07-22 10:46:07 PDT
(In reply to comment #5) > (In reply to comment #4) > > > Source/JavaScriptCore/llint/LowLevelInterpreter.asm:609 > > > + addp CallerFrameAndPCSize, sp > > > > I don't think ARMv7 will allow you to do math with sp register. You'll > > probably need to use a temp and then move result to sp. > > Are you sure? I thought ARMv7 does allow it (hardware-wise). Should just > try a build and see what gets generated. We established it was fine since we are using the two-argument version. Old version was trying to use the three-mode operand by adding to calleeFrame, which wouldn't work. Landing this soon.
Basile Clement
Comment 7 2015-07-22 10:58:06 PDT
Michael Saboff
Comment 8 2015-07-22 13:21:28 PDT
Created attachment 257287 [details] ARM64 test output with failures
Michael Saboff
Comment 9 2015-07-22 15:56:56 PDT
Created attachment 257306 [details] ARM32 test output with failures
Note You need to log in before you can comment on or make changes to this bug.