Summary: | Add support for a ternary sub32 emitter for ARM64 and 32-bit ARM. | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Mark Lam <mark.lam> | ||||||
Component: | JavaScriptCore | Assignee: | Mark Lam <mark.lam> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | benjamin, fpizlo, ggaren, jfbastien, keith_miller, msaboff, saam | ||||||
Priority: | P2 | ||||||||
Version: | WebKit Local Build | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Mark Lam
2016-09-07 17:47:30 PDT
Created attachment 288217 [details]
proposed patch.
Looking into how to write a test for this now. Comment on attachment 288217 [details] proposed patch. View in context: https://bugs.webkit.org/attachment.cgi?id=288217&action=review You ought to be able to write a test in testb3 that checks that we are now using the 3-operand sub. > Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:568 > + NO_RETURN_DUE_TO_CRASH void sub32(RegisterID, RegisterID, RegisterID) > + { > + RELEASE_ASSERT_NOT_REACHED(); > + } > + Hmm. I think we have an opportunity to make live a lot easier for ourselves if we implement this. Here's a possible impl: sub32(a, b, c) { // Implement c = a - b if (c == b) { neg32(c); add32(a, c); return; } move(a, c); sub32(b, c); } Created attachment 288310 [details]
proposed patch with test added and feedback applied.
Thanks for the review. Landed in r205656: <http://trac.webkit.org/r205656>. |