> But not in the "Base" category. GCC should not generate mcrxr unless some > flag enabling the "Embedded" category is set (this can of course be set > via -mcpu=), or we have ISA 1.xx . It is probably nicer if we treat > mcrxr separately, with an -mmcrxr flag, with TARGET_MCRXR.
OK, that makes sense indeed. > You can use SO instead, but then you have to make sure it is clear before > you run the OE=1 instruction. SO of course is the cheapest way to access > overflow (it is copied to the CR field on any compare or recording insn). Is there an efficient way of clearing the XER then? Because this kind of sticky flag is not usable with the current infrastructure. > How so? It behaves exactly like CA, i.e. exactly like a register (it _is_ > a register!) You can do arithmetical operations with CA by means of the extended form whereas you cannot with OV, you really need to manipulate it like a flag. -- Eric Botcazou