Module Arm64_binary_emitter.All_section_states
Collection of section states for all sections in an assembly unit.
module Asm_label = Asm_targets.Asm_labelmodule Asm_section = Asm_targets.Asm_sectionmodule Asm_symbol = Asm_targets.Asm_symbolmodule Symbol = Arm64_ast.Ast.Symbolval create : for_jit:bool -> tval for_jit : t -> boolval get_or_create : t -> Asm_section.t -> Section_state.tval find : t -> Asm_section.t -> Section_state.t optionval find_exn : t -> Asm_section.t -> Section_state.tval iter : t -> f:(Asm_section.t -> Section_state.t -> unit) -> unitval fold :
t ->
init:'a ->
f:(Asm_section.t -> Section_state.t -> 'a -> 'a) ->
'aIndividual sections: for sections tracked by their exact name string rather than the Asm_section.t enum. This is needed for function sections where each function gets its own .text.caml.<funcname> section. These sections are tracked separately so we can compare them individually against the assembler output during verification.
val get_or_create_individual : t -> string -> Section_state.tval find_individual : t -> string -> Section_state.t optionval iter_individual : t -> f:(string -> Section_state.t -> unit) -> unitval fold_individual :
t ->
init:'a ->
f:(string -> Section_state.t -> 'a -> 'a) ->
'aval find_in_any_individual_section :
t ->
Symbol.target ->
(int * Asm_section.t) optionval find_in_any_individual_section_with_state :
t ->
Symbol.target ->
(int * Asm_section.t * Section_state.t) optionSearch individual sections for a label or symbol. Returns (offset, section, state) if found.
val find_in_any_section_with_state :
t ->
Symbol.target ->
(int * Asm_section.t * Section_state.t) optionSearch all sections for a label or symbol. Returns (offset, section, section_state) if found. This is needed when the caller needs to access the actual state where the label was found.
val find_in_any_section : t -> Symbol.target -> (int * Asm_section.t) optionval reset_offsets : t -> unitmodule D = Asm_targets.Asm_directivesval add_direct_assignment : t -> string -> D.Directive.Constant.t -> unitval find_direct_assignment : t -> string -> D.Directive.Constant.t option