[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] Floating/Double issue on arm64 in mob

From: Christian Jullien
Subject: Re: [Tinycc-devel] Floating/Double issue on arm64 in mob
Date: Fri, 8 Nov 2019 07:58:25 +0100

I added a test case in 22_floating_point.c and pushed the suggested fix in mod.




From: Christian Jullien [mailto:address@hidden]
Sent: Tuesday, November 05, 2019 08:14
To: 'address@hidden'
Subject: RE: [Tinycc-devel] Floating/Double issue on arm64 in mob


I confirm this BUG which appends on my FC31 Rpi aarch64.


I “think” 4104 can be interpreted as VT_EXTERN | VT_FLOAT (i.e 0x00001000 | 0x8)


Quickly trying following diff looks to fix this issue (and makes the whole test suite still happy). I let maintainers tell me if it is the right fix to apply.


diff --git a/arm64-gen.c b/arm64-gen.c

index 5606271..5cd9e6b 100644

--- a/arm64-gen.c

+++ b/arm64-gen.c

@@ -1775,7 +1775,8 @@ ST_FUNC void gen_cvt_ftoi(int t)


ST_FUNC void gen_cvt_ftof(int t)


-    int f = vtop[0].type.t;

+    int f = vtop[0].type.t & VT_BTYPE;


     assert(t == VT_FLOAT || t == VT_DOUBLE || t == VT_LDOUBLE);

     assert(f == VT_FLOAT || f == VT_DOUBLE || f == VT_LDOUBLE);

     if (t == f)



From: Tinycc-devel [mailto:tinycc-devel-bounces+eligis=address@hidden] On Behalf Of Charles Lohr
Sent: Tuesday, November 05, 2019 07:52
To: address@hidden
Subject: [Tinycc-devel] Floating/Double issue on arm64 in mob


Using default settings, in hash 96f1fb1, current mob head, I am having an internal compiler assert on arm64.  The following program causes an assert.  There are other cases but the assert remains the same.


float fd;
int main()
        if( fd < 5.5 ) return 1;
        return 0;


root@omitted:~/apps/cnovr/lib/tinycc# ./tcc failtest.c  -Iinclude
tcc: arm64-gen.c:1781: gen_cvt_ftof: Assertion `f == VT_FLOAT || f == VT_DOUBLE || f == VT_LDOUBLE' failed.


Digging a little further, turns out f is of type 4104.  I'm not sure what the best path forward here is.  Any clues?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]