jon.recoil.org

Module Arm64_ast.Logical_immediates

Recognition and encoding of logical immediate arguments for ARM64

val is_logical_immediate : nativeint -> bool

is_logical_immediate x returns true if x is a valid logical immediate for ARM64 instructions. A valid logical immediate is:

  • neither 0 nor -1;
  • composed of a repetition BBBBB of a bit-pattern B of length e
  • the low e bits of the number, that is, B, match 0+1+0* or 1+0+1*.
type encoded_logical_immediate = {
  1. n : int;
  2. immr : int;
  3. imms : int;
}
val encode_logical_immediate_fields : nativeint -> encoded_logical_immediate

encode_logical_immediate_fields x encodes a logical immediate into (N, immr, imms) fields for ARM64 instructions. Raises a fatal error if x is not a valid logical immediate.