From a00e9a92f8811026e57c274b0dc763c4039da9da Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 8 Aug 1998 10:19:17 +0000 Subject: [PATCH] * small fixes to write the extended type correct --- compiler/ag386int.pas | 23 +++++++++++++++++++++-- compiler/ag386nsm.pas | 23 +++++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/compiler/ag386int.pas b/compiler/ag386int.pas index fb5e1e1d97..4ff2b15d61 100644 --- a/compiler/ag386int.pas +++ b/compiler/ag386int.pas @@ -67,6 +67,22 @@ unit ag386int; double2str:=lower(hs); end; + function extended2str(e : extended) : string; + var + hs : string; + p : byte; + begin + str(e,hs); + { nasm expects a lowercase e } + p:=pos('E',hs); + if p>0 then + hs[p]:='e'; + p:=pos('+',hs); + if p>0 then + delete(hs,p,1); + extended2str:=lower(hs); + end; + function comp2str(d : bestreal) : string; type @@ -327,7 +343,7 @@ unit ag386int; end; ait_real_32bit : AsmWriteLn(#9#9'DD'#9+double2str(pai_single(hp)^.value)); ait_real_64bit : AsmWriteLn(#9#9'DQ'#9+double2str(pai_double(hp)^.value)); - ait_real_extended : AsmWriteLn(#9#9'DT'#9+double2str(pai_extended(hp)^.value)); + ait_real_extended : AsmWriteLn(#9#9'DT'#9+extended2str(pai_extended(hp)^.value)); ait_comp : AsmWriteLn(#9#9'DQ'#9+comp2str(pai_extended(hp)^.value)); ait_string : begin counter := 0; @@ -558,7 +574,10 @@ ait_stab_function_name : ; end. { $Log$ - Revision 1.11 1998-06-05 17:46:02 peter + Revision 1.12 1998-08-08 10:19:17 florian + * small fixes to write the extended type correct + + Revision 1.11 1998/06/05 17:46:02 peter * tp doesn't like comp() typecast Revision 1.10 1998/05/25 17:11:36 pierre diff --git a/compiler/ag386nsm.pas b/compiler/ag386nsm.pas index 7eb1ada4dc..278dcb576a 100644 --- a/compiler/ag386nsm.pas +++ b/compiler/ag386nsm.pas @@ -71,6 +71,22 @@ unit ag386nsm; double2str:=lower(hs); end; + function extended2str(e : extended) : string; + var + hs : string; + p : byte; + begin + str(e,hs); + { nasm expects a lowercase e } + p:=pos('E',hs); + if p>0 then + hs[p]:='e'; + p:=pos('+',hs); + if p>0 then + delete(hs,p,1); + extended2str:=lower(hs); + end; + function comp2str(d : bestreal) : string; type @@ -322,7 +338,7 @@ unit ag386nsm; end; ait_real_32bit : AsmWriteLn(#9#9'DD'#9+double2str(pai_single(hp)^.value)); ait_real_64bit : AsmWriteLn(#9#9'DQ'#9+double2str(pai_double(hp)^.value)); - ait_real_extended : AsmWriteLn(#9#9'DD'#9+double2str(pai_extended(hp)^.value)); + ait_real_extended : AsmWriteLn(#9#9'DT'#9+extended2str(pai_extended(hp)^.value)); ait_comp : AsmWriteLn(#9#9'DQ'#9+comp2str(pai_extended(hp)^.value)); ait_string : begin counter := 0; @@ -545,7 +561,10 @@ ait_stab_function_name : ; end. { $Log$ - Revision 1.4 1998-06-05 17:46:03 peter + Revision 1.5 1998-08-08 10:19:18 florian + * small fixes to write the extended type correct + + Revision 1.4 1998/06/05 17:46:03 peter * tp doesn't like comp() typecast Revision 1.3 1998/05/28 17:24:27 peter