Browse Source

* fixed shr of 64 bit values by non-immediate value

Jonas Maebe 22 years ago
parent
commit
4ca3d9a2e9
1 changed files with 14 additions and 1 deletions
  1. 14 1
      compiler/powerpc/nppcmat.pas

+ 14 - 1
compiler/powerpc/nppcmat.pas

@@ -260,6 +260,9 @@ implementation
                    begin
                    begin
                      asmop1 := A_SRW;
                      asmop1 := A_SRW;
                      asmop2 := A_SLW;
                      asmop2 := A_SLW;
+                     resultreg := hregisterhigh;
+                     hregisterhigh := hregisterlow;
+                     hregisterlow := resultreg;
                      resultreg := location.registerhigh;
                      resultreg := location.registerhigh;
                      location.registerhigh := location.registerlow;
                      location.registerhigh := location.registerlow;
                      location.registerlow := resultreg;
                      location.registerlow := resultreg;
@@ -286,6 +289,13 @@ implementation
                    location.registerlow,hregisterlow,hregister1));
                    location.registerlow,hregisterlow,hregister1));
                  rg.ungetregisterint(exprasmlist,r);
                  rg.ungetregisterint(exprasmlist,r);
 
 
+                 if nodetype = shrn then
+                   begin
+                     resultreg := location.registerhigh;
+                     location.registerhigh := location.registerlow;
+                     location.registerlow := resultreg;
+                   end;
+
                  if right.location.loc in [LOC_CREFERENCE,LOC_REFERENCE] then
                  if right.location.loc in [LOC_CREFERENCE,LOC_REFERENCE] then
                    cg.free_scratch_reg(exprasmlist,hregister1)
                    cg.free_scratch_reg(exprasmlist,hregister1)
                  else
                  else
@@ -510,7 +520,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.26  2003-05-11 11:45:08  jonas
+  Revision 1.27  2003-05-24 19:15:29  jonas
+    * fixed shr of 64 bit values by non-immediate value
+
+  Revision 1.26  2003/05/11 11:45:08  jonas
     * fixed shifts
     * fixed shifts
 
 
   Revision 1.25  2003/04/24 12:57:32  florian
   Revision 1.25  2003/04/24 12:57:32  florian