diff options
author | yury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2006-11-21 21:20:24 +0000 |
---|---|---|
committer | yury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2006-11-21 21:20:24 +0000 |
commit | 5fc90b941ae4b2733e9c2caa20c9811cb90e2c41 (patch) | |
tree | d9a9a815a476e67158dd80a8fce7d8a3d63cfa07 /compiler/arm/cpupara.pas | |
parent | d8cde2f981bfea53648d12ff3912199b616408e3 (diff) | |
download | fpc-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.pas | 13 |
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, |