[Webkit-unassigned] [Bug 198604] Refactoring of architectural Register Information

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jun 12 07:33:02 PDT 2019


--- Comment #34 from Paulo Matos <pmatos at igalia.com> ---
(In reply to Keith Miller from comment #33)
> Comment on attachment 371945 [details]
> Post-1 Review Patch
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=371945&action=review
> > Source/JavaScriptCore/assembler/ARM64Registers.h:31
> > +#define REGISTER_NAMESPACE ARM64Registers
> I think this can just be a using RegisterNames = ARM64Registers; 
> Then any user can just assume all registers are under the generic
> RegisterNames namespace.

Not sure I understand the suggestion here.
You mean, removing the platform dependent namespace name and making the namespace platform independent in both assembler/<arch>Assembler.h and elsewhere?

> > Source/JavaScriptCore/assembler/ARM64Registers.h:55
> > +    macro_forward(macro, n(x0), 0, 0)                           \
> Why do we need to have the macro_forward? Can't the consumer macro do any of
> the things n() does? Seems like that would be cleaner.

Yes, we can expand n() manually and avoid it but n() serves as a helper so that we don't need to write:
macro(x0, ARM64Registers::x0, "x0", 0, 0)

Once we use 
macro(n(x0), 0, 0)

then we need to use the macro_forward as a trick to force the preprocessor to split the macro arguments. Further to that, if we are on MSVC like Chris suggested we also need the EXPAND_ARGS macro helper.

If people find it better to avoid the helpers and just call the macro with all the arguments, thereby avoiding the helper issues, I can do the change.

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/20190612/33452559/attachment.html>

More information about the webkit-unassigned mailing list