aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Inject.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-30 10:59:38 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-30 10:59:38 +0200
commitbae72eeffdd23c3444a097f5f901333c6c70af8b (patch)
treee0d57c8eb28880c302c94d12260e8b85d402052b /backend/Inject.v
parentfd00d28f8065acf9b09a6510e1612a91e30ca29c (diff)
downloadcompcert-kvx-bae72eeffdd23c3444a097f5f901333c6c70af8b.tar.gz
compcert-kvx-bae72eeffdd23c3444a097f5f901333c6c70af8b.zip
more on injection
Diffstat (limited to 'backend/Inject.v')
-rw-r--r--backend/Inject.v10
1 files changed, 10 insertions, 0 deletions
diff --git a/backend/Inject.v b/backend/Inject.v
index 66ef9ce8..a3f2b343 100644
--- a/backend/Inject.v
+++ b/backend/Inject.v
@@ -60,3 +60,13 @@ Definition inject_at (prog : code) (pc extra_pc : node)
extra_pc (successor i) l
| None => inject_list prog extra_pc 1 l (* does not happen *)
end.
+
+Definition inject_at' (already : node * code) pc l :=
+ let (extra_pc, prog) := already in
+ inject_at prog pc extra_pc l.
+
+Definition inject' (prog : code) (extra_pc : node) (injections : PTree.t (list inj_instr)) :=
+ PTree.fold inject_at' injections (extra_pc, prog).
+
+Definition inject prog extra_pc injections : code :=
+ snd (inject' prog extra_pc injections).