|
Message
From: fredrik@w...<fredrik@w...>
Date: Sat Dec 27 22:49:40 CET 2003
Subject: [openrisc] or32-gcc: Current status + new version
> The problems I've seen happen with double integer types. eCos uses > them > a lot.
I've have problems with 64-bit types (unsigned long long) also with GCC3.2.x and GCC3.3.x, this when compiling ARM-code with arm-elf-gcc target and -O2. I think its the GCC optimizer that is buggy, not especially OR related maybe.
I think that what happened when compiling 64-bit arithmetic for an 32-bit processor, the operation is divided into two 32-bit instructions. The optimizer seems to allow reordering of the latter instruction, which in some cases can cause that the 64-bit result is used before its completely calculated. Only the first 32-bit half is done when its used.
It would be interesting to compile your sample code also for other GCC-targets. Maybe this is something rather for the GCC-team to look into?
Best Regards, /Fredrik Hederstierna
|
 |