Or names something like that.
If we are copying a quad, we should not inhibit register trading (gprs are usually all full, xmms mostly empty).
Sure. But there may be cases where we put a constant in GpRegs when it's really a float, or in XmmRegs when it's really an int, and then subsequently do arithmetic on it. These ones will be improved.
Created attachment 422692 [details] [diff] [review] NJ patch This patch removes isQuad(). Some details: - I removed fpn(), because it's identical to gpn() and was only used in a couple of places. - You could argue that I should have kept isQuad() around to use in places where we now have 'isI64() || isF64()'. I deliberately didn't do this because I'm trying to remove all traces of the "quad" terminology and the type-unsafe thinking behind it. (If people really want something like this, I could add 'isN64()'.) - I updated SanityFilter to allow testing, but it will be replaced wholesale when the LIR type-checker (bug 463137) is committed.
Created attachment 422693 [details] [diff] [review] TM patch
Created attachment 422694 [details] [diff] [review] TR patch There are a couple of places in this patch where we now have 'ins->isI64() || ins->isF64()', but a stronger test of just 'ins->isI64()' or 'ins->isF64()' might be possible, I couldn't tell. Whoever commits the TR patch might like to consider this. Nb: I updated ValidateWriter but the LIR type-checker (bug 463137) should be committed first, whereupon those changes should be discarded because ValidateWriter has been moved into nanojit/LIR.cpp. Passes TR acceptance tests on my local machine, and passes the TR try server.