浏览代码

Try to fix real constant problems for llvm compiler

Pierre Muller 3 年之前
父节点
当前提交
2307dc8f26
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      compiler/wasm32/agllvmmc.pas

+ 8 - 1
compiler/wasm32/agllvmmc.pas

@@ -225,9 +225,16 @@ implementation
               begin
                 result:=result+'nan';
                 if fraction<>(int64(1) shl (fraction_bits-1)) then
-                  result:=result+':0x'+HexStr(fraction,fraction_hexdigits);
+                  result:=result+'(0x'+HexStr(fraction,fraction_hexdigits)+')';
               end;
           end
+        else if (exponent=0) then
+	  begin
+            if  (fraction=0) then
+              result:=result+'0x0.0p'+tostr(-exponent_bias)
+            else
+             result:=result+'0x0.'+HexStr(fraction shl (fraction_hexdigits*4-fraction_bits),fraction_hexdigits)+'p'+tostr(-exponent_bias+1)
+          end
         else
           result:=result+'0x1.'+HexStr(fraction shl (fraction_hexdigits*4-fraction_bits),fraction_hexdigits)+'p'+tostr(exponent-exponent_bias);
       end;