diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2012-05-18 08:21:12 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2012-05-18 08:21:12 +0000 |
commit | e521f0bc060ead051102e4d68b98bb40ecc802b3 (patch) | |
tree | 39a1e32b826f17e359d22fc837a59fcac7db9aab | |
parent | 521dac4e0d950e6128b266b27eac1875d79200f1 (diff) | |
download | compcert-e521f0bc060ead051102e4d68b98bb40ecc802b3.tar.gz compcert-e521f0bc060ead051102e4d68b98bb40ecc802b3.zip |
Use freg <-> 2 ireg move instructions to fix up calling conventions
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1895 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
-rw-r--r-- | arm/PrintAsm.ml | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/arm/PrintAsm.ml b/arm/PrintAsm.ml index 48943e98..1f053df4 100644 --- a/arm/PrintAsm.ml +++ b/arm/PrintAsm.ml @@ -432,11 +432,9 @@ let fixup_conventions oc dir tyl = let fixup f i1 i2 = match dir with | Incoming -> (* f <- (i1, i2) *) - fprintf oc " fmdlr %a, %a\n" freg f ireg i1; - fprintf oc " fmdhr %a, %a\n" freg f ireg i2 + fprintf oc " fmdrr %a, %a, %a\n" freg f ireg i1 ireg i2 | Outgoing -> (* (i1, i2) <- f *) - fprintf oc " fmrdl %a, %a\n" ireg i1 freg f; - fprintf oc " fmrdh %a, %a\n" ireg i2 freg f in + fprintf oc " fmrrd %a, %a, %a\n" ireg i1 ireg i2 freg f in match tyl with | Tfloat :: Tfloat :: _ -> fixup FR0 IR0 IR1; fixup FR1 IR2 IR3; 4 |