My assumption is wrong. There is a test program with results from gcc and tcc.
#include <stdio.h>

inline long lrint (double x) 
{
    long retval;  
    __asm__ __volatile__ ("fistpl %0"  : "=m" (retval) : "t" (x) : "st");
      return retval;
}

int main()
{
    int I = 10;
    long L = 20;
    double D = 30.6;
    long LD = lrint (D);
    printf ("Result: I=%d L=%ld D=%lf LD=%ld\n", I, L, D, LD);
}

// gcc: "Result: I=10 L=20 D=30.600000 LD=31"
// tcc: "Result: I=10 L=20 D=30.600000 LD=-2147483648"
_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to