From 362f2f36a44fa6ab4fe28264ed572d721adece70 Mon Sep 17 00:00:00 2001 From: xleroy Date: Fri, 3 Jan 2014 17:09:54 +0000 Subject: Introduce and use the platform-specific Archi module giving: - endianness - alignment constraints for 8-byte types (which is 4 for x86 ABI and 8 for other ABIs) - NaN handling options (superceding the Nan module, removed). git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2402 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- arm/Archi.v | 36 ++++++++++++++++++++++++++++++++++++ arm/Nan.v | 29 ----------------------------- 2 files changed, 36 insertions(+), 29 deletions(-) create mode 100644 arm/Archi.v delete mode 100644 arm/Nan.v (limited to 'arm') diff --git a/arm/Archi.v b/arm/Archi.v new file mode 100644 index 0000000..e693541 --- /dev/null +++ b/arm/Archi.v @@ -0,0 +1,36 @@ +(* *********************************************************************) +(* *) +(* The Compcert verified compiler *) +(* *) +(* Xavier Leroy, INRIA Paris-Rocquencourt *) +(* Jacques-Henri Jourdan, 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 GNU General Public License as published by *) +(* the Free Software Foundation, either version 2 of the License, or *) +(* (at your option) any later version. This file is also distributed *) +(* under the terms of the INRIA Non-Commercial License Agreement. *) +(* *) +(* *********************************************************************) + +(** Architecture-dependent parameters for ARM *) + +Require Import ZArith. +Require Import Fappli_IEEE. +Require Import Fappli_IEEE_bits. + +Definition big_endian := false. + +Notation align_int64 := 8%Z (only parsing). +Notation align_float64 := 8%Z (only parsing). + +Program Definition default_pl : bool * nan_pl 53 := (false, nat_iter 51 xO xH). + +Definition choose_binop_pl (s1: bool) (pl1: nan_pl 53) (s2: bool) (pl2: nan_pl 53) := + (** Choose second NaN if pl2 is sNaN but pl1 is qNan. + In all other cases, choose first NaN *) + (Pos.testbit (proj1_sig pl1) 51 && + negb (Pos.testbit (proj1_sig pl2) 51))%bool. + +Global Opaque big_endian default_pl choose_binop_pl. diff --git a/arm/Nan.v b/arm/Nan.v deleted file mode 100644 index e2bddf6..0000000 --- a/arm/Nan.v +++ /dev/null @@ -1,29 +0,0 @@ -(* *********************************************************************) -(* *) -(* The Compcert verified compiler *) -(* *) -(* Xavier Leroy, INRIA Paris-Rocquencourt *) -(* Jacques-Henri Jourdan, 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 GNU General Public License as published by *) -(* the Free Software Foundation, either version 2 of the License, or *) -(* (at your option) any later version. This file is also distributed *) -(* under the terms of the INRIA Non-Commercial License Agreement. *) -(* *) -(* *********************************************************************) - -Require Import Fappli_IEEE. -Require Import Fappli_IEEE_bits. -Require Import Floats. -Require Import ZArith. -Require Import Integers. - -Program Definition default_pl : bool * nan_pl 53 := (false, nat_iter 51 xO xH). - -Definition choose_binop_pl (s1: bool) (pl1: nan_pl 53) (s2: bool) (pl2: nan_pl 53) := - (** Choose second NaN if pl2 is sNaN but pl1 is qNan. - In all other cases, choose first NaN *) - (Pos.testbit (proj1_sig pl1) 51 && - negb (Pos.testbit (proj1_sig pl2) 51))%bool. -- cgit v1.2.3