aboutsummaryrefslogtreecommitdiffstats
path: root/arm/Asmgen.v
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-03-28 10:01:53 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-03-28 10:01:53 +0000
commit9976ed7a27434cfcc334959ef5f20e4967ff8dcb (patch)
tree803e1659ad2c7395911408dbe46f79aa49ffea12 /arm/Asmgen.v
parentc0ff75a787c9b56699722fa672e76c97acfe93b5 (diff)
downloadcompcert-kvx-9976ed7a27434cfcc334959ef5f20e4967ff8dcb.tar.gz
compcert-kvx-9976ed7a27434cfcc334959ef5f20e4967ff8dcb.zip
Updating ARM port
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1291 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'arm/Asmgen.v')
-rw-r--r--arm/Asmgen.v9
1 files changed, 6 insertions, 3 deletions
diff --git a/arm/Asmgen.v b/arm/Asmgen.v
index 069a08a2..2a3b3f36 100644
--- a/arm/Asmgen.v
+++ b/arm/Asmgen.v
@@ -473,10 +473,12 @@ Definition transl_instr (f: Mach.function) (i: Mach.instruction) (k: code) :=
Pblsymb symb :: k
| Mtailcall sig (inl r) =>
loadind_int IR13 f.(fn_retaddr_ofs) IR14
- (Pfreeframe f.(fn_link_ofs) :: Pbreg (ireg_of r) :: k)
+ (Pfreeframe (-f.(fn_framesize)) f.(fn_stacksize) f.(fn_link_ofs)
+ :: Pbreg (ireg_of r) :: k)
| Mtailcall sig (inr symb) =>
loadind_int IR13 f.(fn_retaddr_ofs) IR14
- (Pfreeframe f.(fn_link_ofs) :: Pbsymb symb :: k)
+ (Pfreeframe (-f.(fn_framesize)) f.(fn_stacksize) f.(fn_link_ofs)
+ :: Pbsymb symb :: k)
| Mlabel lbl =>
Plabel lbl :: k
| Mgoto lbl =>
@@ -488,7 +490,8 @@ Definition transl_instr (f: Mach.function) (i: Mach.instruction) (k: code) :=
Pbtbl IR14 tbl :: k
| Mreturn =>
loadind_int IR13 f.(fn_retaddr_ofs) IR14
- (Pfreeframe f.(fn_link_ofs) :: Pbreg IR14 :: k)
+ (Pfreeframe (-f.(fn_framesize)) f.(fn_stacksize) f.(fn_link_ofs)
+ :: Pbreg IR14 :: k)
end.
Definition transl_code (f: Mach.function) (il: list Mach.instruction) :=