<div dir="ltr"><div>Hello,<br><br></div><div>I'm observing a weird behavior in a generated code (fpc-trunk, last night revision).<br></div><div>A routine looks like this:<br><br></div><div>procedure some_paint(...  ; x, y, w, h: Single; ...)<br></div><div>var<br></div><div>  f1, f2 : Single; // local variable<br><br></div><div>..  // all operands are Single type<br></div><div>  f1 := 1 / Data.t1 / Data.v1;    // <-- the line corrupts value of parameters x,y,w,h<br>  f2 := 1 / Data.t2 / Data.v2; <br></div><div><br></div><div>In fact, it feels like any multiplication or division operations corrupts float-point parameters.<br><br></div><div>The same code works for all other darwin targets (i386, x86_64 and arm7).<br></div><div><br></div><div>I was thinking it might have something to do with Apple's specific ABI and even specified -Ca parameter explicitly (which didn't make any difference, as expected.)<br></div><div><br></div><div>Sorry, I didn't get any assembler code, but will do it later today.<br></div><div>Any suggestion what should I pay attention to and/or provide information about?<br></div><div><br>thanks<br></div><div>Dmitry<br></div></div>