Quellcode durchsuchen

* fixed double parameters passing and storing result for ARM in softfloat mode (by removing old hacks).

git-svn-id: trunk@5438 -
yury vor 18 Jahren
Ursprung
Commit
5ceef96cf3
1 geänderte Dateien mit 2 neuen und 11 gelöschten Zeilen
  1. 2 11
      compiler/arm/cpupara.pas

+ 2 - 11
compiler/arm/cpupara.pas

@@ -401,15 +401,6 @@ unit cpupara;
                    end;
                  dec(paralen,tcgsize2size[paraloc^.size]);
                end;
-             { hack to swap doubles in int registers }
-             if is_double(hp.vardef) and (paracgsize=OS_64) and
-               (hp.paraloc[side].location^.loc=LOC_REGISTER) then
-               begin
-                 paraloc:=hp.paraloc[side].location;
-                 hp.paraloc[side].location:=hp.paraloc[side].location^.next;
-                 hp.paraloc[side].location^.next:=paraloc;
-                 paraloc^.next:=nil;
-               end;
           end;
         curintreg:=nextintreg;
         curfloatreg:=nextfloatreg;
@@ -456,8 +447,8 @@ unit cpupara;
                     begin
                       { low }
                       p.funcretloc[side].loc:=LOC_REGISTER;
-                      p.funcretloc[side].register64.reglo:=NR_FUNCTION_RESULT64_HIGH_REG;
-                      p.funcretloc[side].register64.reghi:=NR_FUNCTION_RESULT64_LOW_REG;
+                      p.funcretloc[side].register64.reglo:=NR_FUNCTION_RESULT64_LOW_REG;
+                      p.funcretloc[side].register64.reghi:=NR_FUNCTION_RESULT64_HIGH_REG;
                       p.funcretloc[side].size:=OS_64;
                     end;
                   OS_32,