[Webkit-unassigned] [Bug 192496] Enable DFG on ARM/Linux again

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Dec 11 03:15:27 PST 2018


https://bugs.webkit.org/show_bug.cgi?id=192496

--- Comment #8 from Yusuke Suzuki <yusukesuzuki at slowstart.org> ---
Comment on attachment 356800
  --> https://bugs.webkit.org/attachment.cgi?id=356800
Patch

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

>>> Source/JavaScriptCore/ChangeLog:10
>>> +        in compiled DFG code.
>> 
>> Please describe why r11 is avoided.
> 
> True, I should definitely document that. I don't use it, since r11 is used as callee-saved register for metadataTable in LLInt.

Make sense, please describe it in ChangeLog.

>>> Source/JavaScriptCore/dfg/DFGOSRExit.cpp:143
>>> +#endif
>> 
>> Why?
> 
> I avoided to implement this since we don't have callee-saved floating-point registers on 32-bit architectures yet. AFAIU implementing this might be a bit complicated since general-purpose register are 32-bit wide for 32-bit architectures, while floating point registers are 64-bit wide.

Could you add FIXME and comments about this here?
And let's put braces for `else`.

>> Source/JavaScriptCore/dfg/DFGOSRExit.cpp:171
>> +#endif
> 
> Ditto.

Ditto.

>>> Source/JavaScriptCore/jit/CallFrameShuffler.cpp:58
>>> +#endif
>> 
>> Why?
> 
> RegisterSet::vmCalleeSaveRegisters() used to be the empty set on 32-bit architectures, now on ARM this returns r11 (so the metadataTable register). So the register r11 would be used by CallFrameShuffler and therefore needs to be saved/restored, it seemed the simplest to just avoid using this register in here. RegisterSet::vmCalleeSaveRegisters() used to be the empty set, so there shouldn't be fewer register available than before.

OK, I see. Please describe the detail here as a comment.
In JSVALUE32_64 environment, we do not have CallFrameShuffleData::setupCalleeSaveRegisters, right?

> Source/JavaScriptCore/jit/GPRInfo.h:551
> +    static const GPRReg regT7 = ARMRegisters::r5;

Let's clean up some code in offline arm.rb too. (Note that ARM traditional JIT is removed now).

>> Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:2017
>>      loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t1
> 
> Would it make more sense to save t1 earlier than recalculate it (on a callee-saved reg or pushed on the stack)?

looks ok.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20181211/893b300a/attachment.html>


More information about the webkit-unassigned mailing list