Browse Source

* fix arm(eb) load/store of smaller than register sizes

git-svn-id: trunk@10500 -
micha 17 years ago
parent
commit
6910b0ed40
1 changed files with 4 additions and 0 deletions
  1. 4 0
      compiler/arm/cgcpu.pas

+ 4 - 0
compiler/arm/cgcpu.pas

@@ -775,6 +775,8 @@ unit cgcpu;
          so : tshifterop;
          so : tshifterop;
          dir : integer;
          dir : integer;
        begin
        begin
+         if (TCGSize2Size[FromSize] >= TCGSize2Size[ToSize]) then
+           FromSize := ToSize;
          case ToSize of
          case ToSize of
            { signed integer registers }
            { signed integer registers }
            OS_8,
            OS_8,
@@ -843,6 +845,8 @@ unit cgcpu;
          so : tshifterop;
          so : tshifterop;
          dir : integer;
          dir : integer;
        begin
        begin
+         if (TCGSize2Size[FromSize] >= TCGSize2Size[ToSize]) then
+           FromSize := ToSize;
          case FromSize of
          case FromSize of
            { signed integer registers }
            { signed integer registers }
            OS_8:
            OS_8: