Sfoglia il codice sorgente

* fixed llvm unaryminus for comp/currency on platforms supporting extended

git-svn-id: trunk@32524 -
Jonas Maebe 9 anni fa
parent
commit
71e27e85c9
1 ha cambiato i file con 5 aggiunte e 2 eliminazioni
  1. 5 2
      compiler/llvm/nllvmmat.pas

+ 5 - 2
compiler/llvm/nllvmmat.pas

@@ -102,8 +102,11 @@ begin
     { comp and currency are handled as int64 at the llvm level }
     s64comp,
     s64currency:
-      { sc80floattype instead of _size, see comment in thlcgllvm.a_loadfpu_ref_reg }
-      current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_const_size(la_sitofp,zeroreg,s64inttype,0,sc80floattype));
+      begin
+        { sc80floattype instead of _size, see comment in thlcgllvm.a_loadfpu_ref_reg }
+        _size:=sc80floattype;
+        current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_const_size(la_sitofp,zeroreg,s64inttype,0,_size));
+      end;
 {$ifdef cpuextended}
     s80real,sc80real:
       current_asmdata.CurrAsmList.concat(taillvm.op_reg_size_fpconst80_size(la_bitcast,zeroreg,_size,0.0,_size));