aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/Asmblockgen.v
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2019-02-08 15:39:48 +0100
committerCyril SIX <cyril.six@kalray.eu>2019-02-08 15:39:48 +0100
commit66f236124907af065fc8396f8cefd5726a46b06a (patch)
tree02c79ca01be3b8dbc9698ed9a829255a252b685b /mppa_k1c/Asmblockgen.v
parent0cb0e0c239f086b766a2b4eb65f79a426db49813 (diff)
downloadcompcert-kvx-66f236124907af065fc8396f8cefd5726a46b06a.tar.gz
compcert-kvx-66f236124907af065fc8396f8cefd5726a46b06a.zip
Added indirect tailcalls
Diffstat (limited to 'mppa_k1c/Asmblockgen.v')
-rw-r--r--mppa_k1c/Asmblockgen.v4
1 files changed, 2 insertions, 2 deletions
diff --git a/mppa_k1c/Asmblockgen.v b/mppa_k1c/Asmblockgen.v
index 4c285c8e..553d20d4 100644
--- a/mppa_k1c/Asmblockgen.v
+++ b/mppa_k1c/Asmblockgen.v
@@ -845,6 +845,8 @@ Definition transl_instr_control (f: Machblock.function) (oi: option Machblock.co
OK ((Pcall symb) ::g nil)
| MBtailcall sig (inr symb) =>
OK (make_epilogue f ((Pgoto symb) ::g nil))
+ | MBtailcall sig (inl r) =>
+ do r1 <- ireg_of r; OK (make_epilogue f ((Pigoto r1) ::g nil))
| MBbuiltin ef args res =>
OK (Pbuiltin ef (List.map (map_builtin_arg preg_of) args) (map_builtin_res preg_of res) ::g nil)
| MBgoto lbl =>
@@ -854,8 +856,6 @@ Definition transl_instr_control (f: Machblock.function) (oi: option Machblock.co
| MBreturn =>
OK (make_epilogue f (Pret ::g nil))
(*OK (make_epilogue f (Pj_r RA f.(Mach.fn_sig) :: k))*)
- | MBtailcall _ (inl _) =>
- Error (msg "Asmblockgen.transl_instr_control MBtailcall inl")
| MBjumptable _ _ =>
Error (msg "Asmblockgen.transl_instr_control MBjumptable")
end