Browse Source

Fix the edge of first_imaginary in move op

Jinyang He 2 years ago
parent
commit
96f4300158
1 changed files with 2 additions and 2 deletions
  1. 2 2
      compiler/rgobj.pas

+ 2 - 2
compiler/rgobj.pas

@@ -1483,9 +1483,9 @@ unit rgobj;
        such as stack/framepointers, because otherwise they can be changed }
        such as stack/framepointers, because otherwise they can be changed }
       else if (((u<first_imaginary) and adjacent_ok(u,v)) or
       else if (((u<first_imaginary) and adjacent_ok(u,v)) or
                conservative(u,v)) and
                conservative(u,v)) and
-              ((u>first_imaginary) or
+              ((u>=first_imaginary) or
                (u in usable_register_set)) and
                (u in usable_register_set)) and
-              ((v>first_imaginary) or
+              ((v>=first_imaginary) or
                (v in usable_register_set)) then
                (v in usable_register_set)) then
         begin
         begin
           m.moveset:=ms_coalesced_moves;  {Move coalesced!}
           m.moveset:=ms_coalesced_moves;  {Move coalesced!}