Up
module
Selectgen
:
sig
#
type
environment = (
Ident
.
t
,
Reg
.
t
array)
Tbl
.
t
#
val
size_expr :
environment
->
Cmm
.
expression
->
int
#
class
virtual
selector_generic :
#
method
virtual
is_immediate : int
->
bool
#
method
virtual
select_addressing :
Cmm
.
memory_chunk
->
Cmm
.
expression
->
Arch.addressing_mode *
Cmm
.
expression
#
method
is_simple_expr :
Cmm
.
expression
->
bool
#
method
select_operation :
Cmm
.
operation
->
Cmm
.
expression
list
->
Mach
.
operation
*
Cmm
.
expression
list
#
method
select_condition :
Cmm
.
expression
->
Mach
.
test
*
Cmm
.
expression
#
method
select_store : bool
->
Arch.addressing_mode
->
Cmm
.
expression
->
Mach
.
operation
*
Cmm
.
expression
#
method
regs_for :
Cmm
.
machtype
->
Reg
.
t
array
#
method
insert_op :
Mach
.
operation
->
Reg
.
t
array
->
Reg
.
t
array
->
Reg
.
t
array
#
method
insert_op_debug :
Mach
.
operation
->
Debuginfo
.
t
->
Reg
.
t
array
->
Reg
.
t
array
->
Reg
.
t
array
#
method
emit_extcall_args :
environment
->
Cmm
.
expression
list
->
Reg
.
t
array * int
#
method
emit_stores :
environment
->
Cmm
.
expression
list
->
Reg
.
t
array
->
unit
#
method
mark_call : unit
#
method
mark_tailcall : unit
#
method
mark_c_tailcall : unit
#
method
mark_instr :
Mach
.
instruction_desc
->
unit
#
method
emit_fundecl :
Cmm
.
fundecl
->
Mach
.
fundecl
#
method
extract :
Mach
.
instruction
#
method
insert :
Mach
.
instruction_desc
->
Reg
.
t
array
->
Reg
.
t
array
->
unit
#
method
insert_debug :
Mach
.
instruction_desc
->
Debuginfo
.
t
->
Reg
.
t
array
->
Reg
.
t
array
->
unit
#
method
insert_move :
Reg
.
t
->
Reg
.
t
->
unit
#
method
insert_move_args :
Reg
.
t
array
->
Reg
.
t
array
->
int
->
unit
#
method
insert_move_results :
Reg
.
t
array
->
Reg
.
t
array
->
int
->
unit
#
method
insert_moves :
Reg
.
t
array
->
Reg
.
t
array
->
unit
#
method
emit_expr : (
Ident
.
t
,
Reg
.
t
array)
Tbl
.
t
->
Cmm
.
expression
->
Reg
.
t
array option
#
method
emit_tail : (
Ident
.
t
,
Reg
.
t
array)
Tbl
.
t
->
Cmm
.
expression
->
unit
#
val
reset : unit
->
unit
end