[Mono-dev] floating point arithmetic on ARMv4t (arm920t)
Dennis Krzyzaniak
dkml at conworx.com
Thu Jun 7 07:13:57 UTC 2012
Hi all,
I am still working to get Mono running on an ARM920t (ARMv4t). Currently I
am hitting a problem with broken floating point arithmetic on my device.
Using this little test app:
namespace foobar {
public class foo {
public static void Main(string[] args) {
int i = 0;
float fa = 1.0001F;
float fb = 0.0001F;
float fs = 0;
for (i=0; i<5; i++)
{
fs = fs * fa + fb;
Console.WriteLine("float loop {0} {1}", i, fs);
}
}
}
}
Gives the result:
/host/bin # ./mono hello_world.exe
float loop 0 -3.513059E-06
float loop 1 -3.513059E-06
float loop 2 -3.513059E-06
float loop 3 -3.513059E-06
float loop 4 -3.513059E-06
The processor has no FPU so I used the soft float configuration. I also
tried little and big endian build with the same behavior.
I described my configuration settings in this post:
http://lists.ximian.com/pipermail/mono-devel-list/2012-June/038922.html .
The only new thing is that I am using CFLAGS now to avoid the default
optimization level O2 which also breaks my runtime.
I am completely new to Mono and need some help to find the correct place
where the error could result from. I guess it is somewhere in
method-to-ir.c? Can you point me to the source code places where maybe some
adaptions could be needed that I can test a little bit? I think it is
something related to my ARM architecture but I am not sure.
Best regards,
Dennis Krzyzaniak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20120607/760fc9ed/attachment.html>
More information about the Mono-devel-list
mailing list