[PATCH-v2] sparc: Rename NGMP to GR740 and add configs for UT699, UT700, and GR712RC

Jiri Gaisler jiri at gaisler.se
Wed Jul 19 15:47:26 UTC 2017



On 07/19/2017 04:04 PM, Sebastian Huber wrote:
> Hello Jiri,
>
> I fixed a couple of tests. One remaining failure on the leon2 is mathf:
>
> *** BEGIN OF TEST MATHF ***
> acosf          : 1.570796
> acoshf         : -nan
> asinf          : 1.570796
> asinhf         : 0.881374
> atanf          : 0.665774
> atan2f         : 0.785398
> atanhf         : inf
> cbrtf          : 3.000000
> ceilf          : 4.000000
> copysignf      : -3.500000
> cosf           : -0.000000
> coshf          : 2.509179
> erff           : 1.000000
> erfcf          : 0.000000
> expf           : 1.521962
> exp2f          : 1.337928
> expm1f         : 0.000420
> fabsf          : 1.123000
> fdimf          : 0.000000
> floorf         : 0.000000
> floorf         : -1.000000
>
> Breakpoint 1, 0x40004044 in fmaf (x=x at entry=2.0999999, y=2.20000005,
> z=3.00999999) at
> /home/EB/sebastian_h/archive/gcc-git/newlib/libm/common/sf_fma.c:25
> 25        return (float) (((double) x * (double) y) + (double) z);
> (gdb) disas 0x40004044
> Dump of assembler code for function fmaf:
>    0x40004024 <+0>:     add  %sp, -80, %sp
>    0x40004028 <+4>:     st  %o1, [ %sp + 0x4c ]
>    0x4000402c <+8>:     ld  [ %sp + 0x4c ], %f8
>    0x40004030 <+12>:    st  %o0, [ %sp + 0x4c ]
>    0x40004034 <+16>:    ld  [ %sp + 0x4c ], %f9
>    0x40004038 <+20>:    st  %o2, [ %sp + 0x4c ]
>    0x4000403c <+24>:    fsmuld  %f8, %f9, %f0
>    0x40004040 <+28>:    ld  [ %sp + 0x4c ], %f8
> => 0x40004044 <+32>:    fstod  %f8, %f8
>    0x40004048 <+36>:    add  %sp, 0x50, %sp
>    0x4000404c <+40>:    faddd  %f0, %f8, %f0
>    0x40004050 <+44>:    retl
>    0x40004054 <+48>:    fdtos  %f0, %f0
> End of assembler dump.
> (gdb) p/x $fsr
> $1 = 0xe660
>
> Is fstod implemented on the SIS?
fstod is implemented.
 
The instruction that takes the trap is at 0x40004040, which is ld  [ %sp
+ 0x4c ], %f8. Remember that SPARC has deferred FPU trap model so it is
actually the previous FPU instruction FSMULD at 0x4000403c that
generated the trap. This instruction is not implemented in sis, and I am
not sure it is even implemented in some leon2/leon3 hardware. I will
check and report back ...

Jiri.





More information about the devel mailing list