[webkit-reviews] review granted: [Bug 179355] AccessGenerationState::preserveLiveRegistersToStackForCall() should allow some registers to be excluded. : [Attachment 326177] proposed patch.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Nov 6 18:06:58 PST 2017


Michael Saboff <msaboff at apple.com> has granted Mark Lam <mark.lam at apple.com>'s
request for review:
Bug 179355: AccessGenerationState::preserveLiveRegistersToStackForCall() should
allow some registers to be excluded.
https://bugs.webkit.org/show_bug.cgi?id=179355

Attachment 326177: proposed patch.

https://bugs.webkit.org/attachment.cgi?id=326177&action=review




--- Comment #3 from Michael Saboff <msaboff at apple.com> ---
Comment on attachment 326177
  --> https://bugs.webkit.org/attachment.cgi?id=326177
proposed patch.

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

r=me

> Source/JavaScriptCore/ChangeLog:25
> +	   1. Added support to specify an exclude RegisterSet for
> +	      AccessGenerationState::preserveLiveRegistersToStackForCall(). 
This allows us
> +	      to exclude the result registers from the set of registers to
preserve.
> +
> +	   2. Removed the exclude RegisterSet from
restoreLiveRegistersFromStackForCall().
> +	      Instead, restoreLiveRegistersFromStackForCall() should only
restore registers
> +	      that were preserved.  This simplifies the restoration code.
> +
> +	   3. Changed preserveLiveRegistersToStackForCall() and
restoreLiveRegistersFromStackForCall()
> +	      to take RegisterSet arguments by value instead of by reference. 
RegisterSet
> +	      is designed to be passed by value.
> +
> +	   4. Added an implicit default constructor to RegisterSet.  This
allows us to use
> +	      the { } notation for instantiation an empty set.	There is an
explicit
> +	      RegisterSet(Regs... regs) constructor which was made explicit so
that we don't
> +	      inadvertently convert register IDs into RegisterSet.  Having a
default
> +	      constructor does not break intent of the RegisterSet(Regs...
regs) constructor.

Most of these are change descriptions for the affected functions.  Move that
detail down under the appropriate changed file / function section below.  A
summary of what the change does here would be great.


More information about the webkit-reviews mailing list