(* *********************************************************************)
(*                                                                     *)
(*              The Compcert verified compiler                         *)
(*                                                                     *)
(*          Xavier Leroy, INRIA Paris-Rocquencourt                     *)
(*                                                                     *)
(*  Copyright Institut National de Recherche en Informatique et en     *)
(*  Automatique.  All rights reserved.  This file is distributed       *)
(*  under the terms of the INRIA Non-Commercial License Agreement.     *)
(*                                                                     *)
(* *********************************************************************)
(** Correctness proof for Asm generation: machine-independent framework *)
Require Intv.
(** * Processor registers and register states *)
Hint Extern 2 (_ <> _) => congruence: asmgen.

(* Specifications: *)
Lemma ireg_of_eq:
forall r r', ireg_of r = OK r' -> preg_of r = IR r'.
Lemma freg_of_eq:
forall r r', freg_of r = OK r' -> preg_of r = FR r'.
Lemma preg_of_injective:
forall r1 r2, preg_of r1 = preg_of r2 -> r1 = r2.
Lemma preg_of_data:
forall r, data_preg (preg_of r) = true.