Browse Source

o patch by Max Nazholov:
* more C code ported
* missing exits fixed
* var-modifier of shortShift128Left fixed
* some range warnings fixed

git-svn-id: trunk@24871 -

florian 12 years ago
parent
commit
92477a14b8
2 changed files with 674 additions and 106 deletions
  1. 3 2
      rtl/inc/genmath.inc
  2. 671 104
      rtl/inc/softfpu.pp

+ 3 - 2
rtl/inc/genmath.inc

@@ -236,7 +236,7 @@ invalid:
      End;
      End;
 
 
 
 
-   function float64_to_int64_round_to_zero(a : float64) : int64;
+   function genmath_float64_to_int64_round_to_zero(a : float64) : int64;
      var
      var
        aSign : flag;
        aSign : flag;
        aExp, shiftCount : smallint;
        aExp, shiftCount : smallint;
@@ -286,6 +286,7 @@ invalid:
        result:=z;
        result:=z;
      end;
      end;
 
 
+
 {$ifndef FPC_SYSTEM_HAS_ExtractFloat32Frac}
 {$ifndef FPC_SYSTEM_HAS_ExtractFloat32Frac}
   Function ExtractFloat32Frac(a : Float32) : longint;
   Function ExtractFloat32Frac(a : Float32) : longint;
     Begin
     Begin
@@ -370,7 +371,7 @@ invalid:
          f64.low:=f64.high;
          f64.low:=f64.high;
          f64.high:=l;
          f64.high:=l;
 {$endif FPC_DOUBLE_HILO_SWAPPED}
 {$endif FPC_DOUBLE_HILO_SWAPPED}
-         result:=float64_to_int64_round_to_zero(f64);
+         result:=genmath_float64_to_int64_round_to_zero(f64);
        end
        end
      else
      else
        begin
        begin

File diff suppressed because it is too large
+ 671 - 104
rtl/inc/softfpu.pp


Some files were not shown because too many files changed in this diff