Преглед изворни кода

* 16-bit alu handling in tshlshrnode.pass_typecheck simplified via the use of
get_common_intdef

git-svn-id: trunk@27641 -

nickysn пре 11 година
родитељ
комит
7d8fb1833f
1 измењених фајлова са 2 додато и 8 уклоњено
  1. 2 8
      compiler/nmat.pas

+ 2 - 8
compiler/nmat.pas

@@ -695,10 +695,7 @@ implementation
 {$elseif defined(cpu64bitalu) or defined(cpu32bitalu)}
 {$elseif defined(cpu64bitalu) or defined(cpu32bitalu)}
                  inserttypeconv(left,s32inttype)
                  inserttypeconv(left,s32inttype)
 {$elseif defined(cpu16bitalu)}
 {$elseif defined(cpu16bitalu)}
-                 if (left.resultdef.size > 2) or (right.resultdef.size > 2) then
-                   inserttypeconv(left,s32inttype)
-                 else
-                   inserttypeconv(left,sinttype);
+                 inserttypeconv(left,get_common_intdef(torddef(left.resultdef),torddef(sinttype),true));
 {$else}
 {$else}
                  internalerror(2013031301);
                  internalerror(2013031301);
 {$endif}
 {$endif}
@@ -710,10 +707,7 @@ implementation
 {$elseif defined(cpu64bitalu) or defined(cpu32bitalu)}
 {$elseif defined(cpu64bitalu) or defined(cpu32bitalu)}
                  inserttypeconv(left,u32inttype);
                  inserttypeconv(left,u32inttype);
 {$elseif defined(cpu16bitalu)}
 {$elseif defined(cpu16bitalu)}
-                 if (left.resultdef.size > 2) or (right.resultdef.size > 2) then
-                   inserttypeconv(left,u32inttype)
-                 else
-                   inserttypeconv(left,uinttype);
+                 inserttypeconv(left,get_common_intdef(torddef(left.resultdef),torddef(uinttype),true));
 {$else}
 {$else}
                  internalerror(2013031301);
                  internalerror(2013031301);
 {$endif}
 {$endif}