浏览代码

Reduce cpu-os dependency on real constant printout by using system.str

git-svn-id: trunk@42670 -
pierre 6 年之前
父节点
当前提交
36bc9b726e
共有 1 个文件被更改,包括 7 次插入3 次删除
  1. 7 3
      compiler/utils/ppuutils/ppudump.pp

+ 7 - 3
compiler/utils/ppuutils/ppudump.pp

@@ -3464,6 +3464,7 @@ var
   realvalue : ppureal;
   realvalue : ppureal;
   doublevalue : double;
   doublevalue : double;
   singlevalue : single;
   singlevalue : single;
+  realstr : shortstring;
   extended : TSplit80bitReal;
   extended : TSplit80bitReal;
   pw : pcompilerwidestring;
   pw : pcompilerwidestring;
   varoptions : tvaroptions;
   varoptions : tvaroptions;
@@ -3578,19 +3579,22 @@ begin
                      begin
                      begin
                        realvalue:=getrealsize(sizeof(ppureal));
                        realvalue:=getrealsize(sizeof(ppureal));
                        constdef.VFloat:=realvalue;
                        constdef.VFloat:=realvalue;
-                       writeln([realvalue]);
+                       system.str(realvalue,realstr);
+                       writeln([realstr]);
                      end
                      end
                    else if entryleft=sizeof(double) then
                    else if entryleft=sizeof(double) then
                      begin
                      begin
                        doublevalue:=getrealsize(sizeof(double));
                        doublevalue:=getrealsize(sizeof(double));
                        constdef.VFloat:=doublevalue;
                        constdef.VFloat:=doublevalue;
-                       writeln([doublevalue]);
+                       system.str(doublevalue,realstr);
+                       writeln([realstr]);
                      end
                      end
                    else if entryleft=sizeof(single) then
                    else if entryleft=sizeof(single) then
                      begin
                      begin
                        singlevalue:=getrealsize(sizeof(single));
                        singlevalue:=getrealsize(sizeof(single));
                        constdef.VFloat:=singlevalue;
                        constdef.VFloat:=singlevalue;
-                       writeln([singlevalue]);
+                       system.str(singlevalue,realstr);
+                       writeln([realstr]);
                      end
                      end
                    else if entryleft=10 then
                    else if entryleft=10 then
                      begin
                      begin