Re: [PATCH 09/17] m68k: Implement xor_unlock_is_negative_byte

From: Greg Ungerer
Date: Wed Sep 20 2023 - 03:22:41 EST




On 20/9/23 01:14, Matthew Wilcox wrote:
On Tue, Sep 19, 2023 at 02:35:25PM +0000, David Laight wrote:
From: Matthew Wilcox <willy@xxxxxxxxxxxxx>
Sent: 19 September 2023 15:26

On Tue, Sep 19, 2023 at 01:23:08PM +0000, David Laight wrote:
Well, that sucks. What do you suggest for Coldfire?

Can you just do a 32bit xor ?
Unless you've got smp m68k I'd presume it is ok?
(And assuming you aren't falling off a page.)

Patch welcome.

My 68020 book seems to be at work and I'm at home.
(The 286, 386 and cy7c600 (sparc 32) books don't help).

But if the code is trying to do *ptr ^= 0x80 and check the
sign flag then you just need to use eor.l with 0x80000000
on the same address.

I have a 68020 book; what I don't have is a Coldfire manual.

You can find it here: https://www.nxp.com/docs/en/reference-manual/CFPRM.pdf

Regards
Greg


Anyway, that's not the brief. We're looking to (eg) clear bit 0
and test whether bit 7 was set. So it's the sign bit of the byte,
not the sign bit of the int.