On Wed, Feb 20, 2013 at 12:05:27AM -0600, Erik Petrich wrote: > I can't answer most of your questions because I do use pic and so I am not > very familiar with that part of SDCC. However, I can answer why SDCC does > not need to call __fs2uint in the first example. SDCC's optimizations are > all at the function level. It can see that x is assigned the float value > 6116.0 and then debug is assigned a value from x. It sees that there are > no intervening instructions that could modify x's value, therefor debug is > assigned the value 6116.0 cast to unsigned int. This cast is being applied > to a known constant, so the compiler performs this cast during compilation > to avoid the overhead of calling __fs2uint during run-time.
Erik, This was great advice and very appreciated. Your explanations (I didn't quote all of them) were quite helpful in narrowing down the problem a bit more. [...] > void main(void) { > volatile float x = 6116.0; > debug = x; > //debug is 6116. > } I now changed the code a bit (since my previous example added both, fs2int and int2fs), to understand better what's going on: long debug; void main(void) { long x = 100; volatile float temp; temp = x; debug = temp; // debug=100 as expected } vs long debug; void main(void) { volatile long x = 100; float temp; temp = x; debug = temp; //debug=144, not expected } The asm block "functions called" is identical expect for the additional "___slong2fs" in the not working example. I am not sure whether that is sufficient indication to consider ___slong2fs the culprit, or whether I can perform any additional tests. When starting with 100 I obtain 144, for 116 I obtain 208, not sure that this makes any sense. I guess it is time to look closer into slong2fs, but I find different source files in the sdcc tree. How can I know for sure which one is used here? Why is it not the same for all chips? Is there a way of making my debugging somewhat easier than connecting displays to an actual chip? Thanks for your help //Daniel ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user