Module Arm.Fields

Helper functions

val sole : string -> 'a list -> ('a, string) result
val guard : bool -> 'a -> (unit, 'a) result

Definitions

val show_intrinsic : intrinsic -> Ppx_deriving_runtime.string
val intrinsic_to_yojson : intrinsic -> Yojson.Safe.t
type field_bidir = intrinsic Bidir.Types.bidir
val show_field_bidir : field_bidir -> Ppx_deriving_runtime.string
val field_bidir_to_yojson : field_bidir -> Yojson.Safe.t
type fieldconv = {
  1. encname : string;
  2. asm_names : string list;
  3. reg_names : string list;
  4. field_bidir : field_bidir;
}

Extractors

val register_char : int -> string
val extract_reg_bits : Types.AsmField.t -> (int, string) result
val encoded_in_the : Types.AsmField.t -> (string, string) result
val allones_interpretation : Types.AsmField.t -> (string option, string) result
type signedness = [
  1. | `Unsigned
  2. | `Signed
]
val show_signedness : signedness -> Ppx_deriving_runtime.string
val signed_or_unsigned : Types.AsmField.t -> ([> `Signed | `Unsigned ], 'a) result
val si_multiplier : string -> int
val in_the_range_bytes : Types.AsmField.t -> (int * int, string) result
val in_the_range_ints : Types.AsmField.t -> (int * int, string) result
val in_the_range : Types.AsmField.t -> (int * int, string) result
val defaulting_to : Types.AsmField.t -> (string option, string) result
val be_absent_when : Types.AsmField.t -> (unit, string) result
val a_multiple_of : Types.AsmField.t -> (int, string) result
val must_be_an_even_numbered : Types.AsmField.t -> (bool, string) result
val the_second_general_purpose_register : Types.AsmField.t -> (string, string) CCResult.t

Bidir constructors

val make_conditional : var:string -> value:Bidir.Types.value -> field_bidir -> field_bidir
val make_regnum_bidir : wd:int -> allones:string option -> checks:intrinsic list -> bitfld:string -> asmfld:string -> field_bidir
val prefix_regnum_bidir : prefix:string -> asmfld:string -> field_bidir -> field_bidir
val make_immediate_bidir : signed:signedness -> wd:int -> lo:int -> hi:int -> mult:int -> asmfld:string -> bitfld:string -> field_bidir
val make_one_bitfield_check : string -> char list -> Bidir.Intrinsics.intrinsic Bidir.Types.bidir
val make_assocs : assocs:Types.Assoc.t list -> asmfld:string -> field_bidir
val make_with_default : asmfld:string -> asmdefault:string option -> field_bidir -> field_bidir
val make_post_replacement : asmfld:string -> old:Bidir.Types.value -> repl:Bidir.Types.value -> field_bidir -> field_bidir
val make_second_gpreg : asmfld:string -> basefld:string -> Bidir.Intrinsics.intrinsic Bidir.Types.bidir

Supported field cases

module FieldData : sig ... end
val handle_general_registers : Types.InstEnc.t -> Types.AsmField.t -> ((int * field_bidir) list * FieldData.t, string) result
val handle_immediate : Types.InstEnc.t -> Types.AsmField.t -> ((int * field_bidir) list * FieldData.t, string) result
val handle_assocs : Types.InstEnc.t -> Types.AsmField.t -> ((int * field_bidir) list * FieldData.t, string) result
val handle_all_supported_cases : Types.InstEnc.t -> Types.AsmField.t -> ((int * field_bidir) list * FieldData.t, string list) CCResult.t
val build_field_converters : Types.InstEnc.t -> (intrinsic Bidir.Types.bidir, string) result