For now, this opcode should be treated as a regular call in all backends.
(In reply to comment #0) > For now, this opcode should be treated as a regular call in all backends.
(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.
Created attachment 257212 [details] Patch
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.
(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.
(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.
Landed in r187166 <http://trac.webkit.org/changeset/187166>.
Created attachment 257287 [details] ARM64 test output with failures
Created attachment 257306 [details] ARM32 test output with failures