[Webkit-unassigned] [Bug 99706] MIPS LLInt implementation.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jan 4 13:23:42 PST 2013


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





--- Comment #50 from Mark Lam <mark.lam at apple.com>  2013-01-04 13:25:39 PST ---
(From update of attachment 181313)
View in context: https://bugs.webkit.org/attachment.cgi?id=181313&action=review

> Source/JavaScriptCore/offlineasm/mips.rb:549
> +        result = mipsLowerMisplacedAddressesSpecific(result)

I see that you split riscLowerMisplacedAddresses() into riscLowerMisplacedAddressesCommon() and riscLowerMisplacedAddressesSpecific().  It seems quite arbitrary which instruction is considered common and which is platform specific.  I suggest you do the following instead:

1. Undo the common and specific split in risk.rb.
2. Refactor riscLowerMisplacedAddresses() to call a riscLowerMisplacedAddressesInInstruction() which actually does the "lowering" for a single instruction instead of a list of instructions.  
3. In mips.rb, call a mipsLowerMisplacedAddresses() instead of riscLowerMisplacedAddresses().
4. In mipsLowerMisplacedAddresses(),
    3.1 Handle the instructions that are specific to mips i.e. overridden behavior.
    3.2 For instructions that the mips port does not wish to override, call down to riscLowerMisplacedAddressesInInstruction() instead of doing the default "newList << node".

With this approach, a platform specific port gets to override the instructions it cares about, and reuse the rest.  And there is no need to determine ahead of time which instruction is common / specific.  Can you do this refactor please?

Other than that, everything else looks good to me.  Thanks.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list