RESOLVED FIXED 79617
Implement support for op_negate and op_bitnot in the DFG JIT.
https://bugs.webkit.org/show_bug.cgi?id=79617
Summary Implement support for op_negate and op_bitnot in the DFG JIT.
Gavin Barraclough
Reported 2012-02-26 19:04:40 PST
To keep the IR simple, we can implement these as sub & xor operations.
Attachments
Fix (33.81 KB, patch)
2012-02-26 22:39 PST, Gavin Barraclough
no flags
Remove op_bitnot (25.17 KB, patch)
2012-02-27 10:18 PST, Gavin Barraclough
sam: review+
ArithNegate (22.43 KB, patch)
2012-02-27 15:22 PST, Gavin Barraclough
fpizlo: review+
Gavin Barraclough
Comment 1 2012-02-26 22:39:28 PST
Gavin Barraclough
Comment 2 2012-02-26 23:25:05 PST
Gah, just finished testing, there is a bug here. To implement negate as a subtract, it is -0.0 - X, rather than 0 - X, d'oh, should have remembered that. Optimizing this would probably going to mean adding special cases for subtract-from-negative-zero throughout the code, so it's probably easier to just keep op_negate, and add support to the DFG JIT. In the case of op_bitnot, removing this was a nice simplification so I'll probably stick with that approach.
Gavin Barraclough
Comment 3 2012-02-27 10:18:27 PST
Created attachment 129064 [details] Remove op_bitnot
Sam Weinig
Comment 4 2012-02-27 10:22:40 PST
Comment on attachment 129064 [details] Remove op_bitnot View in context: https://bugs.webkit.org/attachment.cgi?id=129064&action=review > Source/JavaScriptCore/ChangeLog:8 > + Remove op_bitnop â this is redundant, ~x === x^-1. Weird unicode character. > Source/JavaScriptCore/ChangeLog:10 > + Please put a comment about removing the canUse part of ResultType.
Gavin Barraclough
Comment 5 2012-02-27 10:26:49 PST
op_bitnot change landed in r109007.
Gavin Barraclough
Comment 6 2012-02-27 15:22:43 PST
Created attachment 129110 [details] ArithNegate
Gavin Barraclough
Comment 7 2012-02-27 16:32:01 PST
Fixed in r109038.
Note You need to log in before you can comment on or make changes to this bug.