module I386: sig end
In 3-addresses codes, the first one is not used and the second will contain the result. %edi is reserved for locally needed registers.
Push_o needs %ecx, %esi and %edi.
Author(s): Samuel Mimram
val string_of_char : char -> string
val list_assoc_id : Asm_ir.variable_def -> (Asm_ir.variable_def * 'a) list -> 'a
val list_mem_assoc_id : Asm_ir.variable_def -> (Asm_ir.variable_def * 'a) list -> bool
val list_assoc' : 'a -> ('b * 'a) list -> 'b
val list_mem_assoc' : 'a -> ('b * 'a) list -> bool
val list_itern : (int -> 'a -> 'b) -> 'a list -> unit
val esp : Asm_ir.register
val ebp : Asm_ir.register
val eax : Asm_ir.register
val ebx : Asm_ir.register
val ecx : Asm_ir.register
val edx : Asm_ir.register
val esi : Asm_ir.register
val edi : Asm_ir.register
val string_of_register : Asm_ir.register -> string
val get_reg_var : Asm_ir.register -> Asm_ir.variable
val get_stack_pos_var : unit -> Asm_ir.variable
val nb_registers : int
val allocate_registers : Asm_ir.base_block -> int -> unit
val local_opt_base_block : Asm_ir.base_block -> unit
val generate_code : Asm_ir.program -> string