Browse Source

* fixed a bug in the maxqword check in the Rol/RorQWord(maxqword,x)->maxqword
optimization, which prevented the optimization from ever being performed. This
should also fix the test failure of tbs/tb0627b.pp on all 64-bit platforms.

git-svn-id: trunk@36071 -

nickysn 8 years ago
parent
commit
987cf2a9cf
1 changed files with 1 additions and 1 deletions
  1. 1 1
      compiler/ninl.pas

+ 1 - 1
compiler/ninl.pas

@@ -2153,7 +2153,7 @@ implementation
                   ((resultdef.size=1) and (vl2=$ff)) or
                   ((resultdef.size=1) and (vl2=$ff)) or
                   ((resultdef.size=2) and (vl2=$ffff)) or
                   ((resultdef.size=2) and (vl2=$ffff)) or
                   ((resultdef.size=4) and (vl2=$ffffffff)) or
                   ((resultdef.size=4) and (vl2=$ffffffff)) or
-                  ((resultdef.size=8) and (vl2=$ffffffffffffffff))) and
+                  ((resultdef.size=8) and (vl2.uvalue=qword($ffffffffffffffff)))) and
                  ((cs_opt_level4 in current_settings.optimizerswitches) or
                  ((cs_opt_level4 in current_settings.optimizerswitches) or
                   not might_have_sideeffects(tcallparanode(left).left)) then
                   not might_have_sideeffects(tcallparanode(left).left)) then
                 result:=cordconstnode.create(vl2,resultdef,true);
                 result:=cordconstnode.create(vl2,resultdef,true);