I could run this on my physical A1200 / 68060 compiling via VBCC for
AmigaOS if you are interested in further info.

( FWIW: I'd really expect that 68882 68040 and 68060 will agree on all
encondings, and also could be interesting to double check against WinUAE or
FS-UAE)


On Sat, Jul 24, 2021 at 6:06 AM Finn Thain <fth...@linux-m68k.org> wrote:

> On Fri, 23 Jul 2021, Stan Johnson wrote:
>
> > On 7/22/21 5:57 PM, Brad Boyer wrote:
> > > On Thu, Jul 22, 2021 at 07:32:49PM +1000, Finn Thain wrote:
> > >>> $ cat /proc/cpuinfo
> > >>> CPU:              68030
> > >>> MMU:              68030
> > >>> FPU:              68882
> > >>
> > >> I wonder if that hardware should be expected to give the same result
> as
> > >> 68040 hardware (?) Both QEMU and Aranym emulate the latter:
> > >>
> > >> CPU:            68040
> > >> MMU:            68040
> > >> FPU:            68040
> > >
> > > The m68k PRM does document some minor differences between the
> 68881/68882
> > > and the built-in FPU in the 68040 (other than the obvious unimplemented
> > > instructions in the 68040), but I don't think any of it would rise to
> > > this level. They're almost entirely compatible. My first guess would be
> > > an emulation bug. This is the sort of thing that would likely be easy
> to
> > > get wrong.
> > >
> > > My apologies for not having any of my 68040 systems available for a
> test
> > > on the real hardware. I'm not even sure if any of them still work.
> > >
> > >     Brad Boyer
> > >     f...@allandria.com
> > >
> >
> > Attached are three results of running bug-float80.c on m68k hardware:
> >
> > 1) 68040, Centris 650, Debian SID, gcc 9.2.1
>
> It appears that your Motorola 68040 result agrees with your Motorola 68882
> result, as Brad predicted.
>
> > 2) 68040, Centris 650, NetBSD 9.1, gcc 7.5.0
> > 3) 68030, Mac SE/30, NetBSD 9.1, gcc 7.5.0
> >
>
> The NetBSD test results are in agreement, but they differ from Linux. I
> wonder why?
>
> > The bug-float80.c program doesn't compile in its current form in A/UX;
> > not only does stdint.h not exist there, but both Aople's C compiler and
> > an early gcc (2.7.2) repported syntax errors.
> >
>
> The program can probably be ported to System V Release 2 without too much
> pain. You'll have to drop stdint.h. You may need to include limits.h. And
> you may need to build it with "gcc -D__m68k__ bug-float80.c".
>
> Debian/m68k 3 "woody" has gcc 2.95.4, and it fails like this:
>
> sh-2.05a# cc -D__m68k__ bug-float80.c
> bug-float80.c: In function `main':
> bug-float80.c:45: hexadecimal floating constant has no exponent
> bug-float80.c:45: missing white space after number `0x0.deadbee'
> bug-float80.c:45: parse error before `cafefeedp'
>
> So I think you'll want to start with a patch like this:
>
> --- a/bug-float80.c     2021-07-22 19:08:30.000000000 +1000
> +++ b/bug-float80.c     2021-07-24 23:40:27.000000000 +1000
> @@ -13,9 +13,10 @@
>  ***********************************************************************/
>
>  #include <float.h>
> -#include <stdint.h>
>  #include <stdio.h>
>  #include <stdlib.h>
> +#include <string.h>
> +#include <limits.h>
>
>  #if defined(__m68k__)
>  typedef long double __float80;
> @@ -28,7 +29,7 @@
>  {
>      __float80 x;
>      int k, big_endian;
> -    union { long double v; uint16_t i[6]; uint32_t j[3]; } u;
> +    union { long double v; unsigned short i[6]; unsigned long j[3]; } u;
>
>      u.v = 0x1p0;
>      big_endian = (u.i[4] == 0);
> @@ -42,7 +43,7 @@
>      PRINTF("LDBL_MIN      = %0.16La = %0.19Lg\n", (long double)LDBL_MIN,
> (long double)LDBL_MIN);
>      PRINTF("\n");
>
> -    x = 0x0.deadbeefcafefeedp-16381L;
> +    memcpy(&x, "\x00\x01\x00\x00\xDE\xAD\xBE\xEF\xCA\xFE\xFE\xED",
> sizeof(x));
>      u.v = x;
>      k = -16381;
>
>
> BTW, limits.h in A/UX 3.0.1 has this:
>
> #if !defined(DBL_MIN)
>   /* Minimum normalised double */
> #ifndef __STDC__
> # define DBL_MIN (2.2250738585072018e-308)
> #else
> # define DBL_MIN (2.2250738585072014e-308)
> #endif
> #endif
>
> However, the LDBL_* definitions seem to be independent of other macros.
>
>

-- 
Antonio Vargas Gonzalez | winden ^ capsule ^ rgba ^ network ^ batman.group |
 +windenntw <https://plus.google.com/117143451409201100384/about> |
winden...@gmail.com

Reply via email to