Thanks Ondrej.
In the meantime, I've found the problem and am testing a fix. Basically
the function that computes the magic number for a given bit size doesn't
sign-extend it to the full size. In the given example, the signed
divisior +60 for 32-bit produces the multiplicand $88888889. However,
under x86_64, it is not sign-extended to the full 64-bit internal
type... that is, the variable holds $00000000 88888889 instead of
$FFFFFFFF 88888889. This causes a later condition that checks if the
value is less than 0 to malfunction.
Gareth aka. Kit
On 18/08/2022 07:06, Ondrej Pokorny via fpc-devel wrote:
Hello it looks like only people with FPC developer status can move
issues to the FPC project. Therefore I forward the request to fpc-devel.
Ondrej
-------- Weitergeleitete Nachricht --------
Betreff: [Lazarusdev] Moving issue 39853 to FPC project
Datum: Thu, 18 Aug 2022 03:51:33 +0300
Kopie (CC): Maxim Ganetsky <gan...@narod.ru>
Hello.
Could someone move this issue to FPC project please:
https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/39853
--
Best regards,
Maxim Ganetskymailto:gan...@narod.ru
_______________________________________________
fpc-devel maillist -fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel