|
@@ -0,0 +1,33 @@
|
|
|
+{ This code was first written by Florian
|
|
|
+ to test the GDB output for FPU
|
|
|
+ he thought first that FPU output was wrong
|
|
|
+ but in fact it is a bug in FPC :( }
|
|
|
+program bug0309;
|
|
|
+
|
|
|
+var
|
|
|
+ a,b : double;
|
|
|
+
|
|
|
+begin
|
|
|
+ asm
|
|
|
+ fninit;
|
|
|
+ end;
|
|
|
+ a:=1;
|
|
|
+ b:=2;
|
|
|
+ asm
|
|
|
+ movl $1,%eax
|
|
|
+ fldl a
|
|
|
+ fldl b
|
|
|
+ fadd
|
|
|
+ fstpl a
|
|
|
+ end;
|
|
|
+ { the above generates wrong code in binary writer
|
|
|
+ fldl is replaced by flds !!
|
|
|
+ if using -alt option to force assembler output
|
|
|
+ all works correctly PM }
|
|
|
+ writeln('a = ',a,' should be 3');
|
|
|
+ if a<>3.0 then
|
|
|
+ Halt(1);
|
|
|
+ a:=1.0;
|
|
|
+ a:=a+b;
|
|
|
+ writeln('a = ',a,' should be 3');
|
|
|
+end.
|