Hint Resolve preg_of_not_LR preg_notin_LR: asmgen.
(** Useful simplification tactic *)
Ltac Simplif :=
((rewrite nextinstr_inv by eauto with asmgen)
|| (rewrite nextinstr_inv2 by eauto with asmgen)
|| (rewrite Pregmap.gss)
|| (rewrite nextinstr_pc)
|| (rewrite Pregmap.gso by eauto with asmgen)); auto with asmgen.
Ltac Simpl := repeat Simplif.
(** Useful properties of pointer addition *)

(* Specifications: *)
Lemma loadv_offset_ptr:
forall chunk m a delta v,
Mem.loadv chunk m (Val.offset_ptr a delta) = Some v ->
Mem.loadv chunk m (Val.add a (Vint (Ptrofs.to_int delta))) = Some v.
Lemma storev_offset_ptr:
forall chunk m a delta v m',
Mem.storev chunk m (Val.offset_ptr a delta) v = Some m' ->
Mem.storev chunk m (Val.add a (Vint (Ptrofs.to_int delta))) v = Some m'.