20 val print_opaccs : opaccs -> string
21 val print_op1 : op1 -> string
22 val print_op2 : op2 -> string
24 module Eval (Val : Value.S) : sig
25 val opaccs : opaccs -> Val.t -> Val.t ->
26 (Val.t (* first result (ACC) *) *
27 Val.t (* second result (BACC) *))
28 val op1 : op1 -> Val.t -> Val.t
29 val op2 : Val.t (* carry *) -> op2 -> Val.t -> Val.t ->
30 (Val.t (* returned value *) * Val.t (* new carry value *))
33 (* Not supported: signed division, signed modulo, shift operations. *)
36 val compare_reg : register -> register -> int
37 val eq_reg : register -> register -> bool
39 module RegisterSet : Set.S with type elt = register
40 module RegisterMap : Map.S with type key = register
52 val sts : register list
53 val rets : register list
55 val carry : register (* only used for the liveness analysis *)
64 val registers : RegisterSet.t
65 val parameters : register list
66 val callee_saved : RegisterSet.t
67 val caller_saved : RegisterSet.t
68 val allocatable : RegisterSet.t
69 val forbidden : RegisterSet.t
71 val print_register : register -> string
73 val reg_addr : register -> [> ASM.direct]
75 val ext_ram_size : int
76 val int_ram_size : int