123456789101112131415161718192021222324252627282930313233 |
- { 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.
|