Ver código fonte

* update the stack alignment field of parameters when doing so for paralocs

git-svn-id: trunk@41204 -
Jonas Maebe 6 anos atrás
pai
commit
353be907c7
1 arquivos alterados com 8 adições e 2 exclusões
  1. 8 2
      compiler/arm/cpupara.pas

+ 8 - 2
compiler/arm/cpupara.pas

@@ -458,7 +458,10 @@ unit cpupara;
                             if (nextintreg in [RS_R1,RS_R3]) then
                               inc(nextintreg)
                             else if nextintreg>RS_R3 then
-                              stack_offset:=align(stack_offset,8);
+                              begin
+                                stack_offset:=align(stack_offset,8);
+                                hp.paraloc[side].Alignment:=8;
+                              end;
                           end;
                         if nextintreg<=RS_R3 then
                           begin
@@ -573,7 +576,10 @@ unit cpupara;
                             if (target_info.abi in [abi_eabi,abi_eabihf]) and
                                firstparaloc and
                                (paradef.alignment=8) then
-                              stack_offset:=align(stack_offset,8);
+                              begin
+                                stack_offset:=align(stack_offset,8);
+                                hp.paraloc[side].Alignment:=8;
+                              end;
 
                              paraloc^.loc:=LOC_REFERENCE;
                              paraloc^.reference.index:=NR_STACK_POINTER_REG;