To keep the IR simple, we can implement these as sub & xor operations.
Created attachment 128955 [details] Fix
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.
Created attachment 129064 [details] Remove op_bitnot
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.
op_bitnot change landed in r109007.
Created attachment 129110 [details] ArithNegate
Fixed in r109038.