Documentation

Bignum.Arm.Machine.Instruction

ARM Instructions #

This file defines ARM AArch64 instructions used in s2n-bignum. This will be expanded to include all instructions needed for bignum operations.

References #

Source: s2n-bignum/arm/proofs/instruction.ml (ARM instruction definitions)

ARM instruction type.

This is a simplified model focusing on the instructions used in s2n-bignum. Each instruction corresponds to an ARM opcode.

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Pretty-print an instruction in ARM assembly syntax.

      Equations
      Instances For

        A program is a sequence of instructions with a base address (PC).

        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Equations
            Instances For

              ARM Instruction Semantics #

              This section defines the operational semantics of ARM instructions. Each instruction transforms an ArmState to a new ArmState.

              The step function corresponds to the small-step operational semantics τ ⊆ Σ × Σ from the article (Section 4), where execution of a single instruction updates state s to s'.

              References #

              Source: s2n-bignum/arm/proofs/arm.ml (ARM semantics)

              Execute a single ARM instruction, transforming the state.

              This corresponds to the symbolic execution performed by HOL Light's ARM_STEPS_TAC in the proof.

              Equations
              Instances For

                Execute multiple instructions sequentially.

                This corresponds to ARM_STEPS_TAC EXEC (1--n) in HOL Light proofs. Source: s2n-bignum/arm/tutorial/simple.ml:92 (ARM_STEPS_TAC EXEC (1--2))

                Equations
                Instances For

                  Execute a program from its base address.

                  Equations
                  Instances For