浏览代码

* fixed passing of int64 constants as parameters

git-svn-id: branches/i8086@23811 -
nickysn 12 年之前
父节点
当前提交
79f43c22e9
共有 1 个文件被更改,包括 13 次插入7 次删除
  1. 13 7
      compiler/i8086/cgcpu.pas

+ 13 - 7
compiler/i8086/cgcpu.pas

@@ -327,14 +327,20 @@ unit cgcpu;
               begin
                 if tcgsize2size[cgpara.Size] <> 4 then
                   internalerror(2013031101);
-                if tcgsize2size[cgpara.location^.size] <> 2 then
-                  internalerror(2013031101);
                 if cgpara.location^.Next = nil then
-                  internalerror(2013031101);
-                if tcgsize2size[cgpara.location^.Next^.size] <> 2 then
-                  internalerror(2013031101);
-                if cgpara.location^.Next^.Next <> nil then
-                  internalerror(2013031101);
+                  begin
+                    if tcgsize2size[cgpara.location^.size] <> 4 then
+                      internalerror(2013031101);
+                  end
+                else
+                  begin
+                    if tcgsize2size[cgpara.location^.size] <> 2 then
+                      internalerror(2013031101);
+                    if tcgsize2size[cgpara.location^.Next^.size] <> 2 then
+                      internalerror(2013031101);
+                    if cgpara.location^.Next^.Next <> nil then
+                      internalerror(2013031101);
+                  end;
                 if cgpara.alignment <> 4 then
                   internalerror(2013031101);