Browse Source

+ Add loading of softfpu in emulation mode
+ Correct routine call for softfpu
* Extended type must also be defined even with softfpu

carl 22 years ago
parent
commit
edb20100ac
3 changed files with 42 additions and 14 deletions
  1. 16 12
      compiler/nadd.pas
  2. 18 1
      compiler/pmodules.pas
  3. 8 1
      compiler/psystem.pas

+ 16 - 12
compiler/nadd.pas

@@ -1539,28 +1539,27 @@ implementation
         if not (cs_fp_emulation in aktmoduleswitches) then
           exit;
 
-        procname := 'FPC_REAL_';
         case nodetype of
-          addn : procname := procname + 'ADD';
-          muln : procname := procname + 'MUL';
-          subn : procname := procname + 'SUB';
-          slashn : procname := procname + 'DIV';
-          ltn : procname := procname + 'LESS_THAN';
-          lten: procname := procname + 'LESS_EQUAL_THAN';
+          addn : procname := 'float32_add';
+          muln : procname := 'float32_mul';
+          subn : procname := 'float32_sub';
+          slashn : procname := 'float32_div';
+          ltn : procname := 'float32_lt';
+          lten: procname := 'float32_le';
           gtn:
             begin
-             procname := procname + 'LESS_EQUAL_THAN';
+             procname := 'float32_le';
              notnode := true;
             end;
           gten:
             begin
-              procname := procname + 'LESS_THAN';
+              procname := 'float32_lt';
               notnode := true;
             end;
-          equaln: procname := procname + 'EQUAL';
+          equaln: procname := 'float32_eq';
           unequaln :
             begin
-              procname := procname + 'EQUAL';
+              procname := 'float32_eq';
               notnode := true;
             end;
           else
@@ -1915,7 +1914,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.75  2002-11-27 13:11:38  peter
+  Revision 1.76  2002-11-30 21:32:24  carl
+    + Add loading of softfpu in emulation mode
+    + Correct routine call for softfpu
+    * Extended type must also be defined even with softfpu
+
+  Revision 1.75  2002/11/27 13:11:38  peter
     * more currency fixes, taddcurr runs now successfull
 
   Revision 1.74  2002/11/27 11:28:40  peter

+ 18 - 1
compiler/pmodules.pas

@@ -441,6 +441,18 @@ implementation
         make_ref:=false;
         readconstdefs;
         make_ref:=true;
+      { Floating point emulation unit? }
+        if (cs_fp_emulation in aktmoduleswitches) then
+         begin
+           hp:=loadunit('softfpu','');
+           tsymtable(hp.globalsymtable).next:=symtablestack;
+           symtablestack:=hp.globalsymtable;
+           { add to the used units }
+           current_module.used_units.concat(tused_unit.create(hp,true));
+           unitsym:=tunitsym.create('Softfpu',hp.globalsymtable);
+           inc(unitsym.refs);
+           refsymtable.insert(unitsym);
+         end;
       { Thread support unit? }
         if (cs_threading in aktmoduleswitches) then
          begin
@@ -1441,7 +1453,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.84  2002-11-15 01:58:53  peter
+  Revision 1.85  2002-11-30 21:32:24  carl
+    + Add loading of softfpu in emulation mode
+    + Correct routine call for softfpu
+    * Extended type must also be defined even with softfpu
+
+  Revision 1.84  2002/11/15 01:58:53  peter
     * merged changes from 1.0.7 up to 04-11
       - -V option for generating bug report tracing
       - more tracing for option parsing

+ 8 - 1
compiler/psystem.pas

@@ -132,6 +132,8 @@ implementation
             { extended size is the best real type for the target }
             addtype('Real',s32floattype);
             pbestrealtype:=@s32floattype;
+            { extended size is the best real type for the target }
+            addtype('Extended',pbestrealtype^);
           end
         else
           begin
@@ -475,7 +477,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.42  2002-10-05 12:43:27  carl
+  Revision 1.43  2002-11-30 21:32:26  carl
+    + Add loading of softfpu in emulation mode
+    + Correct routine call for softfpu
+    * Extended type must also be defined even with softfpu
+
+  Revision 1.42  2002/10/05 12:43:27  carl
     * fixes for Delphi 6 compilation
      (warning : Some features do not work under Delphi)