Section CONSTRUCTORS.
Variable ge: genv.
Variable fn: function.
(** Properties of comparisons. *)
(** Loading a constant. *)
(** Add integer immediate. *)
(** And integer immediate. *)
(** Or integer immediate. *)
(** Xor integer immediate. *)
(** Rotate and mask. *)
(** Load int64 constant. *)
(** Alternate load int64 immediate *)
(** Add int64 immediate. *)
(** Or int64 immediate. *)
(** Xor int64 immediate. *)
(** And int64 immediate. *)
(** Rotate-and-mask for int64 *)
(** Indexed memory loads. *)

Lemma loadind_correct:
forall (base: ireg) ofs ty dst k (rs: regset) m v c,
loadind base ofs ty dst k = OK c ->
Mem.loadv (chunk_of_type ty) m (Val.offset_ptr rs#base ofs) = Some v ->
base <> GPR0 ->
exists rs',
exec_straight ge fn c rs m k rs' m
/\ rs'#(preg_of dst) = v
/\ forall r, r <> PC -> r <> preg_of dst -> r <> GPR0 -> rs'#r = rs#r.