aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Machregsnames.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2020-04-29 15:12:54 +0200
committerXavier Leroy <xavierleroy@users.noreply.github.com>2020-06-28 10:07:02 +0200
commitad2ea9c2e701dd82c26e6cd3e8a777be9bdef2a2 (patch)
tree128b7e26ed98c6035331adfd880103e89e25200b /backend/Machregsnames.ml
parentfaa1d7fbfd7c9d5aa333d9b353a6118e105c4428 (diff)
downloadcompcert-ad2ea9c2e701dd82c26e6cd3e8a777be9bdef2a2.tar.gz
compcert-ad2ea9c2e701dd82c26e6cd3e8a777be9bdef2a2.zip
Move shared code in new file.
The name_of_register and register_of_name function are shared between all architectures and can be moved in a common file.
Diffstat (limited to 'backend/Machregsnames.ml')
-rw-r--r--backend/Machregsnames.ml24
1 files changed, 24 insertions, 0 deletions
diff --git a/backend/Machregsnames.ml b/backend/Machregsnames.ml
new file mode 100644
index 00000000..fdcbd0e5
--- /dev/null
+++ b/backend/Machregsnames.ml
@@ -0,0 +1,24 @@
+(* *********************************************************************)
+(* *)
+(* The Compcert verified compiler *)
+(* *)
+(* Xavier Leroy, INRIA Paris-Rocquencourt *)
+(* *)
+(* Copyright Institut National de Recherche en Informatique et en *)
+(* Automatique. All rights reserved. This file is distributed *)
+(* under the terms of the INRIA Non-Commercial License Agreement. *)
+(* *)
+(* *********************************************************************)
+
+let register_names : (Machregs.mreg, string) Hashtbl.t = Hashtbl.create 31
+
+let _ =
+ List.iter
+ (fun (s, r) -> Hashtbl.add register_names r (Camlcoq.camlstring_of_coqstring s))
+ Machregs.register_names
+
+let name_of_register r =
+ Hashtbl.find_opt register_names r
+
+let register_by_name s =
+ Machregs.register_by_name (Camlcoq.coqstring_uppercase_ascii_of_camlstring s)