summaryrefslogtreecommitdiff
path: root/compiler/arm/cpupara.pas
diff options
context:
space:
mode:
authoryury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2>2006-11-21 21:20:24 +0000
committeryury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2>2006-11-21 21:20:24 +0000
commit5fc90b941ae4b2733e9c2caa20c9811cb90e2c41 (patch)
treed9a9a815a476e67158dd80a8fce7d8a3d63cfa07 /compiler/arm/cpupara.pas
parentd8cde2f981bfea53648d12ff3912199b616408e3 (diff)
downloadfpc-5fc90b941ae4b2733e9c2caa20c9811cb90e2c41.tar.gz
* fixed double parameters passing and storing result for ARM in softfloat mode (by removing old hacks).
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@5438 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/arm/cpupara.pas')
-rw-r--r--compiler/arm/cpupara.pas13
1 files changed, 2 insertions, 11 deletions
diff --git a/compiler/arm/cpupara.pas b/compiler/arm/cpupara.pas
index a4fcb1a22b..5d12815469 100644
--- a/compiler/arm/cpupara.pas
+++ b/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,