A microprocessor having architectural condition flags that include an architectural carry flag, characterised in that the microprocessor performs an architectural instruction that instructs the microprocessor to perform a shift operation on a first source operand to generate a first result, to perform a second operation on the first result and a second operand to generate a second result, and to write the second result to a destination register and update the architectural condition flags only if the architectural condition flags satisfy a condition specified in the architectural instruction, the microprocessor comprising: a register, that includes storage for the architectural condition flags and includes storage for a non-architectural carry flag; a hardware instruction translator, that receives the architectural instruction and responsively translates the architectural instruction into first and second microinstructions; and an execution pipeline, that executes the microinstructions received from the hardware instruction translator; wherein in response to the first microinstruction, the execution pipeline: performs the shift operation on the first source operand to generate the first result and a carry flag value; and updates the non-architectural carry flag with the generated carry flag value; wherein in response to the second microinstruction, the execution pipeline: performs the second operation on the first result and the second operand to generate the second result and new condition flag values based on the second result; and if the architectural condition flags satisfy the condition, updates the architectural carry flag with the non-architectural carry flag value and updates at least one of the other architectural condition flags with the corresponding generated new condition flag values; and if the architectural condition flags do not satisfy the condition, updates the architectural condition flags with the current value of the architectural condition flags. a register, that includes storage for the architectural condition flags and includes storage for a non-architectural carry flag; a hardware instruction translator, that receives the architectural instruction and responsively translates the architectural instruction into first and second microinstructions; and an execution pipeline, that executes the microinstructions received from the hardware instruction translator; wherein in response to the first microinstruction, the execution pipeline: performs the shift operation on the first source operand to generate the first result and a carry flag value; and updates the non-architectural carry flag with the generated carry flag value; performs the shift operation on the first source operand to generate the first result and a carry flag value; and updates the non-architectural carry flag with the generated carry flag value; wherein in response to the second microinstruction, the execution pipeline: performs the second operation on the first result and the second operand to generate the second result and new condition flag values based on the second result; and if the architectural condition flags satisfy the condition, updates the architectural carry flag with the non-architectural carry flag value and updates at least one of the other architectural condition flags with the corresponding generated new condition flag values; and if the architectural condition flags do not satisfy the condition, updates the architectural condition flags with the current value of the architectural condition flags. performs the second operation on the first result and the second operand to generate the second result and new condition flag values based on the second result; and if the architectural condition flags satisfy the condition, updates the architectural carry flag with the non-architectural carry flag value and updates at least one of the other architectural condition flags with the corresponding generated new condition flag values; and if the architectural condition flags do not satisfy the condition, updates the architectural condition flags with the current value of the architectural condition flags.