diff --git a/compiler/psystem.pas b/compiler/psystem.pas index b3cf9bbf46..da580cbe52 100644 --- a/compiler/psystem.pas +++ b/compiler/psystem.pas @@ -111,11 +111,21 @@ var vmtsymtable : tsymtable; begin { Normal types } - addtype('Single',s32floattype); - addtype('Double',s64floattype); - { extended size is the best real type for the target } - addtype('Extended',pbestrealtype^); - addtype('Real',s64floattype); + if (cs_fp_emulation in aktmoduleswitches) then + begin + addtype('Single',s32floattype); + { extended size is the best real type for the target } + addtype('Real',s32floattype); + pbestrealtype:=@s32floattype; + end + else + begin + addtype('Single',s32floattype); + addtype('Double',s64floattype); + { extended size is the best real type for the target } + addtype('Extended',pbestrealtype^); + addtype('Real',s64floattype); + end; {$ifdef x86} adddef('Comp',tfloatdef.create(s64comp)); {$endif x86} @@ -286,22 +296,15 @@ begin ordpointertype:=u32bittype; s32floattype.setdef(tfloatdef.create(s32real)); s64floattype.setdef(tfloatdef.create(s64real)); + s80floattype.setdef(tfloatdef.create(s80real)); {$endif sparc} - s64currencytype.setdef(tfloatdef.create(s64currency)); {$ifdef m68k} ordpointertype:=u32bittype; s32floattype.setdef(tfloatdef.create(s32real)); - if (cs_fp_emulation in aktmoduleswitches) then - begin - s64floattype.setdef(tfloatdef.create(s32real)); - s80floattype.setdef(tfloatdef.create(s32real)); - end - else - begin - s64floattype.setdef(tfloatdef.create(s64real)); - s80floattype.setdef(tfloatdef.create(s80real)); - end; + s64floattype.setdef(tfloatdef.create(s64real)); + s80floattype.setdef(tfloatdef.create(s80real)); {$endif} + s64currencytype.setdef(tfloatdef.create(s64currency)); { some other definitions } voidpointertype.setdef(tpointerdef.create(voidtype)); charpointertype.setdef(tpointerdef.create(cchartype)); @@ -315,7 +318,10 @@ end; end. { $Log$ - Revision 1.34 2002-08-13 18:01:52 carl + Revision 1.35 2002-08-14 19:14:39 carl + + fpu emulation support (generic and untested) + + Revision 1.34 2002/08/13 18:01:52 carl * rename swatoperands to swapoperands + m68k first compilable version (still needs a lot of testing): assembler generator, system information , inline