Browse Source

+ support for int64 LOC_REGISTERS in remove_non_regvars_from_loc

Jonas Maebe 24 years ago
parent
commit
e57f168475
1 changed files with 10 additions and 3 deletions
  1. 10 3
      compiler/i386/cga.pas

+ 10 - 3
compiler/i386/cga.pas

@@ -658,8 +658,12 @@ implementation
     begin
     begin
       case t.loc of
       case t.loc of
         LOC_REGISTER:
         LOC_REGISTER:
-          { can't be a regvar, since it would be LOC_CREGISTER then }
-          regs := regs and not($80 shr byte(t.register));
+          begin
+            { can't be a regvar, since it would be LOC_CREGISTER then }
+            regs := regs and not($80 shr byte(t.register));
+            if t.registerhigh <> R_NO then
+              regs := regs and not($80 shr byte(t.registerhigh));
+          end;
         LOC_MEM,LOC_REFERENCE:
         LOC_MEM,LOC_REFERENCE:
           begin
           begin
             if not(cs_regalloc in aktglobalswitches) or
             if not(cs_regalloc in aktglobalswitches) or
@@ -2980,7 +2984,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2001-08-26 13:36:52  florian
+  Revision 1.3  2001-08-29 12:01:47  jonas
+    + support for int64 LOC_REGISTERS in remove_non_regvars_from_loc
+
+  Revision 1.2  2001/08/26 13:36:52  florian
     * some cg reorganisation
     * some cg reorganisation
     * some PPC updates
     * some PPC updates