Re: [PATCH 6.10 000/809] 6.10.3-rc3 review
From: John David Anglin
Date: Thu Aug 08 2024 - 11:59:18 EST
On 2024-08-08 10:59 a.m., Guenter Roeck wrote:
Let's wait for PARISC people to run it on actual hardware.
Agreed. I suspect that there is a carry or upper 32 bit of a register not
handled properly, but I have no idea where that might be or why that would
only be seen if the div functions are located in a certain address range.
I'm doubtful there's a coding issue in $$divoI. The routine was written by HP and
it's used on both HP-UX and Linux. The routine can be found in libgcc/config/pa/milli64.S
The routine can trap:
Divide by zero is trapped.
Divide of -2**31 by -1 is trapped for $$divoI but not for $$divI.
$$divoI is a millicode routine. Not sure what calls it. gcc doesn't call it. gcc uses $$divI.
It appears you are testing a 64-bit kernel. There might be issues calling millicode routines
when branch distance exceeds approximately 4 MB. Millicode routines have a special
calling sequence. You could try building kernel with -mlong-calls. Kernel will get bugger
and slower with this option.
Dave
--
John David Anglin dave.anglin@xxxxxxxx