(** Add integer immediate. *)

(* Specifications: *)
Lemma addimm_correct:
forall r1 r2 n k rs m,
r1 <> GPR0 ->
r2 <> GPR0 ->
exists rs',
exec_straight ge fn (addimm r1 r2 n k) rs m  k rs' m
/\ rs'#r1 = Val.add rs#r2 (Vint n)
/\ forall r': preg, r' <> r1 -> r' <> PC -> rs'#r' = rs#r'.
Lemma addimm_correct:
forall r1 r2 n k rs m,
exists rs',
exec_straight ge fn (addimm r1 r2 n k) rs m  k rs' m
/\ rs'#r1 = Val.add rs#r2 (Vint n)
/\ forall r': preg, r' <> r1 -> if_preg r' = true -> rs'#r' = rs#r'.