浏览代码

* 16/8-bit alu fix in tcgunaryminusnode.emit_float_sign_change

git-svn-id: trunk@27672 -
nickysn 11 年之前
父节点
当前提交
63f0731913
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      compiler/ncgmat.pas

+ 7 - 1
compiler/ncgmat.pas

@@ -166,7 +166,13 @@ implementation
             internalerror(200406021);
         end;
         { flip sign-bit (bit 31/63) of single/double }
-        cg.a_op_const_ref(current_asmdata.CurrAsmList,OP_XOR,OS_32,aint($80000000),href2);
+        cg.a_op_const_ref(current_asmdata.CurrAsmList,OP_XOR,OS_32,
+{$ifdef cpu64bitalu}
+          aint($80000000),
+{$else cpu64bitalu}
+          longint($80000000),
+{$endif cpu64bitalu}
+          href2);
         cg.a_loadfpu_ref_reg(current_asmdata.CurrAsmList,_size,_size,href,r);
         tg.ungetiftemp(current_asmdata.CurrAsmList,href);
       end;