Hi, I managed to compile Mono 3.0.3 on my Synology NAS with a P1022 (dual e500) ppc processor. Shortly after I noticed that the conversion of doubles to long fails. This was triggered by some runtime exception in XSP web server that the timespan was negative. I deduced the code to fail to the following:
double dval = 110.0; long lval = (long) dval; In this case lval is always zero. Disassembled this is: IL_0000: ldc.r8 110. IL_0009: stloc.0 IL_000a: ldloc.0 IL_000b: conv.i8 IL_000c: stloc.1 In some documentation I noticed that the E500 cores do not support the conversion instructions for double and long, so I ensured that in mini/mini-ppc the conversion emulator functions where registered correctly (by adding some defines). So, now the emulator function "mono_fconv_i8" is called. However, the argument it gets in is zero as well. So, I wonder what could go wrong. I am pretty lost in the "mono_arch_emit_call" function where the arguments are added (FP type, resulting in a OP_FMOVE). But I currently do not know enough about the registers to make anything out of this. Does anyone know how I can fix this problem? Thanks! Jeroen -- View this message in context: http://mono.1490590.n4.nabble.com/CONV-i8-conversion-problem-on-E500-power-pc-tp4658483.html Sent from the Mono - Dev mailing list archive at Nabble.com. _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list