On Tue, 21 Mar 2023 at 20:19, Nicolas Pitre npitre@baylibre.com wrote:
On Mon, Mar 20, 2023 at 2:19 PM Ard Biesheuvel ardb@kernel.org wrote:
The conditional MOVS instruction that appears to have been added to test for the TIF_USING_IWMMXT thread_info flag only sets the N and Z condition flags and register R7, none of which are referenced in the subsequent code.
Really?
As far as I know, the rsb instruction is a "reversed subtract" and that also sets the carry flag.
And so does a move with a shifter argument (the last dropped bit is moved to the carry flag).
What am I missing?
No, you are absolutely right. I looked up the wrong encoding in the ARM ARM. MOVS without a shift preserves the carry flag, but the variant you used here behaves as you describe.
So the code is correct - apologies for the noise.