Bonsoir ,
Je suis en train de faire un projet de compilation en utilisant Ocaml, et comme je ne suis pas familier avec ce langage , j'ai vraiment du mal à avancer.
Ma question est : comment fusionner deux fonctions en caml ?
Je m'explique :
La première fonction elle s'appelle : RTLabs.St_op2 : en gros elle effectue une opération binaire , elle additionne le contenu du registre srcr1 au contenu du registre srcr2 et stocke le resultat dans destr.
| RTLabs.St_op2 (op2, destr, srcr1, srcr2, lbl) ->
let v =
Eval.op2
(get_type lenv destr) (get_type lenv srcr1) (get_type lenv srcr2)
op2
(get_value lenv srcr1)
(get_value lenv srcr2) in
assign_state sfrs graph sp lbl lenv mem trace destr v
La deuxième fonction elle s'appelle : RTLabs.St_cst : celle là elle assigne une constante à un registre tout simplement.
| RTLabs.St_cst (destr, cst, lbl) ->
let v = Eval.cst mem sp (get_type lenv destr) cst in
assign_state sfrs graph sp lbl lenv mem trace destr v
Moi ce que je voudrais faire : programmer une fonction qui ajouteune constante cst au contenu du registre srcr et stocke le résultat dans le registre
dstr ;
Voilà ce que j'ai fait :
| RTLabs.St_cst (op2, destr, srcr1, src2, cst, lbl) ->
let x = RTLabs.St_cst (src1, cst, lbl) in
/* c'est là ou je bloque car je ne sais pas comment récupérer src1 !!!! */
Merci d'avance.
Partager