diff options
Diffstat (limited to 'gcc-4.7/gcc/ada/g-sse.ads')
-rw-r--r-- | gcc-4.7/gcc/ada/g-sse.ads | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/gcc-4.7/gcc/ada/g-sse.ads b/gcc-4.7/gcc/ada/g-sse.ads deleted file mode 100644 index 706516b98..000000000 --- a/gcc-4.7/gcc/ada/g-sse.ads +++ /dev/null @@ -1,137 +0,0 @@ ------------------------------------------------------------------------------- --- -- --- GNAT COMPILER COMPONENTS -- --- -- --- G N A T . S S E -- --- -- --- S p e c -- --- -- --- Copyright (C) 2009, Free Software Foundation, Inc. -- --- -- --- GNAT is free software; you can redistribute it and/or modify it under -- --- terms of the GNU General Public License as published by the Free Soft- -- --- ware Foundation; either version 3, or (at your option) any later ver- -- --- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- --- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- --- or FITNESS FOR A PARTICULAR PURPOSE. -- --- -- --- As a special exception under Section 7 of GPL version 3, you are granted -- --- additional permissions described in the GCC Runtime Library Exception, -- --- version 3.1, as published by the Free Software Foundation. -- --- -- --- You should have received a copy of the GNU General Public License and -- --- a copy of the GCC Runtime Library Exception along with this program; -- --- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- --- <http://www.gnu.org/licenses/>. -- --- -- --- GNAT was originally developed by the GNAT team at New York University. -- --- Extensive contributions were provided by Ada Core Technologies Inc. -- --- -- ------------------------------------------------------------------------------- - --- This package is the root of a set aimed at offering Ada bindings to a --- subset of the Intel(r) Streaming SIMD Extensions with GNAT. The purpose --- is to allow access from Ada to the SSE facilities defined in the Intel(r) --- compiler manuals, in particular in the Intrinsics Reference of the C++ --- Compiler User's Guide, available from http://www.intel.com. - --- Assuming actual hardware support is available, this capability is --- currently supported on the following set of targets: - --- GNU/Linux x86 and x86_64 --- Windows XP/Vista x86 and x86_64 - --- This unit exposes vector _component_ types together with general comments --- on the binding contents. - --- One other unit is offered as of today: GNAT.SSE.Vector_Types, which --- exposes Ada types corresponding to the reference types (__m128 and the --- like) over which a binding to the SSE GCC builtins may operate. - --- The exposed Ada types are private. Object initializations or value --- observations may be performed with unchecked conversions or address --- overlays, for example: - --- with Ada.Unchecked_Conversion; --- with GNAT.SSE.Vector_Types; use GNAT.SSE, GNAT.SSE.Vector_Types; - --- procedure SSE_Base is - --- -- Core operations - --- function ia32_addps (A, B : m128) return m128; --- pragma Import (Intrinsic, ia32_addps, "__builtin_ia32_addps"); - --- -- User views & conversions - --- type Vf32_View is array (1 .. 4) of GNAT.SSE.Float32; --- for Vf32_View'Alignment use VECTOR_ALIGN; - --- function To_m128 is new Ada.Unchecked_Conversion (Vf32_View, m128); - --- Xf32 : constant Vf32_View := (1.0, 1.0, 2.0, 2.0); --- Yf32 : constant Vf32_View := (2.0, 2.0, 1.0, 1.0); - --- X128 : constant m128 := To_m128 (Xf32); --- Y128 : constant m128 := To_m128 (Yf32); - --- begin --- -- Operations & overlays - --- declare --- Z128 : m128; --- Zf32 : Vf32_View; --- for Zf32'Address use Z128'Address; --- begin --- Z128 := ia32_addps (X128, Y128); --- if Zf32 /= (3.0, 3.0, 3.0, 3.0) then --- raise Program_Error; --- end if; --- end; - --- declare --- type m128_View_Kind is (SSE, F32); --- type m128_Object (View : m128_View_Kind := F32) is record --- case View is --- when SSE => V128 : m128; --- when F32 => Vf32 : Vf32_View; --- end case; --- end record; --- pragma Unchecked_Union (m128_Object); - --- O1 : constant m128_Object := (View => SSE, V128 => X128); --- begin --- if O1.Vf32 /= Xf32 then --- raise Program_Error; --- end if; --- end; --- end SSE_Base; - -package GNAT.SSE is - - ----------------------------------- - -- Common vector characteristics -- - ----------------------------------- - - VECTOR_BYTES : constant := 16; - -- Common size of all the SSE vector types, in bytes. - - VECTOR_ALIGN : constant := 16; - -- Common alignment of all the SSE vector types, in bytes. - - -- Alignment-wise, the reference document reads: - -- << The compiler aligns __m128d and _m128i local and global data to - -- 16-byte boundaries on the stack. >> - -- - -- We apply that consistently to all the Ada vector types, as GCC does - -- for the corresponding C types. - - ---------------------------- - -- Vector component types -- - ---------------------------- - - type Float32 is new Float; - type Float64 is new Long_Float; - type Integer64 is new Long_Long_Integer; - -end GNAT.SSE; |