Преглед на файлове

Merges 22828,22829

git-svn-id: trunk@23756 -
florian преди 12 години
родител
ревизия
08bf826334
променени са 2 файла, в които са добавени 10 реда и са изтрити 4 реда
  1. 8 2
      compiler/arm/cgcpu.pas
  2. 2 2
      compiler/systems/i_embed.pas

+ 8 - 2
compiler/arm/cgcpu.pas

@@ -2359,6 +2359,12 @@ unit cgcpu;
             a_load_ref_reg(list,OS_32,OS_32,source,tmpreg);
             a_load_reg_ref(list,OS_32,OS_32,tmpreg,dest);
           end
+        else if aligned and (len=2) then
+          begin
+            tmpreg:=getintregister(list,OS_16);
+            a_load_ref_reg(list,OS_16,OS_16,source,tmpreg);
+            a_load_reg_ref(list,OS_16,OS_16,tmpreg,dest);
+          end
         else if (len<=helpsize) and aligned then
           begin
             tmpregi:=0;
@@ -2486,8 +2492,8 @@ unit cgcpu;
 
     procedure tbasecgarm.g_concatcopy(list : TAsmList;const source,dest : treference;len : tcgint);
       begin
-        if (source.alignment in [1..3]) or
-          (dest.alignment in [1..3]) then
+        if (source.alignment in [1,3]) or
+          (dest.alignment in [1,3]) then
           g_concatcopy_internal(list,source,dest,len,false)
         else
           g_concatcopy_internal(list,source,dest,len,true);

+ 2 - 2
compiler/systems/i_embed.pas

@@ -79,8 +79,8 @@ unit i_embed;
                 constalignmax   : 4;
                 varalignmin     : 0;
                 varalignmax     : 4;
-                localalignmin   : 4;
-                localalignmax   : 8;
+                localalignmin   : 0;
+                localalignmax   : 4;
                 recordalignmin  : 0;
                 recordalignmax  : 4;
                 maxCrecordalign : 4