[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