To keep the IR simple, we can implement these as sub & xor operations.
Created attachment 128955 [details]
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]
Comment on attachment 129064 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=129064&action=review
> + Remove op_bitnop â this is redundant, ~x === x^-1.
Weird unicode character.
Please put a comment about removing the canUse part of ResultType.
op_bitnot change landed in r109007.
Created attachment 129110 [details]
Fixed in r109038.