Section CONSTRUCTORS.
Variable ge: genv.
Variable fn: function.
(** Decomposition of an integer constant *)
Remark decompose_int_arm_nil:
forall N n p, decompose_int_arm N n p = nil -> n = Int.zero.
Remark decompose_int_thumb_nil:
forall N n p, decompose_int_thumb N n p = nil -> n = Int.zero.
(** Loading a constant. *)
(** Add integer immediate. *)
(* And integer immediate *)
(** Reverse sub immediate *)
(** Or immediate *)
(** Xor immediate *)
(** Indexed memory loads. *)
(** Indexed memory stores. *)
(** Saving the link register *)
(** Translation of shift immediates *)
(** Translation of conditions *)

Lemma compare_float_spec:
forall rs f1 f2,
let rs1 := nextinstr (compare_float rs (Vfloat f1) (Vfloat f2)) in
rs1#CN = Val.of_bool (Float.cmp Clt f1 f2)
/\ rs1#CZ = Val.of_bool (Float.cmp Ceq f1 f2)
/\ rs1#CC = Val.of_bool (negb (Float.cmp Clt f1 f2))
/\ rs1#CV = Val.of_bool (negb (Float.cmp Ceq f1 f2 || Float.cmp Clt f1 f2 || Float.cmp Cgt f1 f2)).