aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/Asm.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/Asm.v
parent0cb0e0c239f086b766a2b4eb65f79a426db49813 (diff)
downloadcompcert-kvx-66f236124907af065fc8396f8cefd5726a46b06a.tar.gz
compcert-kvx-66f236124907af065fc8396f8cefd5726a46b06a.zip
Added indirect tailcalls
Diffstat (limited to 'mppa_k1c/Asm.v')
-rw-r--r--mppa_k1c/Asm.v2
1 files changed, 2 insertions, 0 deletions
diff --git a/mppa_k1c/Asm.v b/mppa_k1c/Asm.v
index d2d562c8..0ce3b455 100644
--- a/mppa_k1c/Asm.v
+++ b/mppa_k1c/Asm.v
@@ -62,6 +62,7 @@ Inductive instruction : Type :=
| Picall (rs: ireg) (**r function call on register *)
(* Pgoto is for tailcalls, Pj_l is for jumping to a particular label *)
| Pgoto (l: label) (**r goto *)
+ | Pigoto (rs: ireg) (**r goto from register *)
| Pj_l (l: label) (**r jump to label *)
| Pcb (bt: btest) (r: ireg) (l: label) (**r branch based on btest *)
| Pcbu (bt: btest) (r: ireg) (l: label) (**r branch based on btest with unsigned semantics *)
@@ -160,6 +161,7 @@ Definition control_to_instruction (c: control) :=
| PCtlFlow (Asmblock.Pcall l) => Pcall l
| PCtlFlow (Asmblock.Picall r) => Picall r
| PCtlFlow (Asmblock.Pgoto l) => Pgoto l
+ | PCtlFlow (Asmblock.Pigoto l) => Pigoto l
| PCtlFlow (Asmblock.Pj_l l) => Pj_l l
| PCtlFlow (Asmblock.Pcb bt r l) => Pcb bt r l
| PCtlFlow (Asmblock.Pcbu bt r l) => Pcbu bt r l