annotate gcc/ada/libgnat/g-alvevi.ads @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ------------------------------------------------------------------------------
kono
parents:
diff changeset
2 -- --
kono
parents:
diff changeset
3 -- GNAT COMPILER COMPONENTS --
kono
parents:
diff changeset
4 -- --
kono
parents:
diff changeset
5 -- G N A T . A L T I V E C . V E C T O R _ V I E W S --
kono
parents:
diff changeset
6 -- --
kono
parents:
diff changeset
7 -- S p e c --
kono
parents:
diff changeset
8 -- --
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
9 -- Copyright (C) 2005-2018, Free Software Foundation, Inc. --
111
kono
parents:
diff changeset
10 -- --
kono
parents:
diff changeset
11 -- GNAT is free software; you can redistribute it and/or modify it under --
kono
parents:
diff changeset
12 -- terms of the GNU General Public License as published by the Free Soft- --
kono
parents:
diff changeset
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
kono
parents:
diff changeset
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
kono
parents:
diff changeset
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
kono
parents:
diff changeset
16 -- or FITNESS FOR A PARTICULAR PURPOSE. --
kono
parents:
diff changeset
17 -- --
kono
parents:
diff changeset
18 -- As a special exception under Section 7 of GPL version 3, you are granted --
kono
parents:
diff changeset
19 -- additional permissions described in the GCC Runtime Library Exception, --
kono
parents:
diff changeset
20 -- version 3.1, as published by the Free Software Foundation. --
kono
parents:
diff changeset
21 -- --
kono
parents:
diff changeset
22 -- You should have received a copy of the GNU General Public License and --
kono
parents:
diff changeset
23 -- a copy of the GCC Runtime Library Exception along with this program; --
kono
parents:
diff changeset
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
kono
parents:
diff changeset
25 -- <http://www.gnu.org/licenses/>. --
kono
parents:
diff changeset
26 -- --
kono
parents:
diff changeset
27 -- GNAT was originally developed by the GNAT team at New York University. --
kono
parents:
diff changeset
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
kono
parents:
diff changeset
29 -- --
kono
parents:
diff changeset
30 ------------------------------------------------------------------------------
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 -- This unit provides public 'View' data types from/to which private vector
kono
parents:
diff changeset
33 -- representations can be converted via Altivec.Conversions. This allows
kono
parents:
diff changeset
34 -- convenient access to individual vector elements and provides a simple way
kono
parents:
diff changeset
35 -- to initialize vector objects.
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 -- Accessing vector contents with direct memory overlays should be avoided
kono
parents:
diff changeset
38 -- because actual vector representations may vary across configurations, for
kono
parents:
diff changeset
39 -- instance to accommodate different target endianness.
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 -- The natural representation of a vector is an array indexed by vector
kono
parents:
diff changeset
42 -- component number, which is materialized by the Varray type definitions
kono
parents:
diff changeset
43 -- below. The 16byte alignment constraint is unfortunately sometimes not
kono
parents:
diff changeset
44 -- properly honored for constant array aggregates, so the View types are
kono
parents:
diff changeset
45 -- actually records enclosing such arrays.
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 package GNAT.Altivec.Vector_Views is
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 ---------------------
kono
parents:
diff changeset
50 -- char components --
kono
parents:
diff changeset
51 ---------------------
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 type Vchar_Range is range 1 .. 16;
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 type Varray_unsigned_char is array (Vchar_Range) of unsigned_char;
kono
parents:
diff changeset
56 for Varray_unsigned_char'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 type VUC_View is record
kono
parents:
diff changeset
59 Values : Varray_unsigned_char;
kono
parents:
diff changeset
60 end record;
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 type Varray_signed_char is array (Vchar_Range) of signed_char;
kono
parents:
diff changeset
63 for Varray_signed_char'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
64
kono
parents:
diff changeset
65 type VSC_View is record
kono
parents:
diff changeset
66 Values : Varray_signed_char;
kono
parents:
diff changeset
67 end record;
kono
parents:
diff changeset
68
kono
parents:
diff changeset
69 type Varray_bool_char is array (Vchar_Range) of bool_char;
kono
parents:
diff changeset
70 for Varray_bool_char'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 type VBC_View is record
kono
parents:
diff changeset
73 Values : Varray_bool_char;
kono
parents:
diff changeset
74 end record;
kono
parents:
diff changeset
75
kono
parents:
diff changeset
76 ----------------------
kono
parents:
diff changeset
77 -- short components --
kono
parents:
diff changeset
78 ----------------------
kono
parents:
diff changeset
79
kono
parents:
diff changeset
80 type Vshort_Range is range 1 .. 8;
kono
parents:
diff changeset
81
kono
parents:
diff changeset
82 type Varray_unsigned_short is array (Vshort_Range) of unsigned_short;
kono
parents:
diff changeset
83 for Varray_unsigned_short'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
84
kono
parents:
diff changeset
85 type VUS_View is record
kono
parents:
diff changeset
86 Values : Varray_unsigned_short;
kono
parents:
diff changeset
87 end record;
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 type Varray_signed_short is array (Vshort_Range) of signed_short;
kono
parents:
diff changeset
90 for Varray_signed_short'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
91
kono
parents:
diff changeset
92 type VSS_View is record
kono
parents:
diff changeset
93 Values : Varray_signed_short;
kono
parents:
diff changeset
94 end record;
kono
parents:
diff changeset
95
kono
parents:
diff changeset
96 type Varray_bool_short is array (Vshort_Range) of bool_short;
kono
parents:
diff changeset
97 for Varray_bool_short'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 type VBS_View is record
kono
parents:
diff changeset
100 Values : Varray_bool_short;
kono
parents:
diff changeset
101 end record;
kono
parents:
diff changeset
102
kono
parents:
diff changeset
103 --------------------
kono
parents:
diff changeset
104 -- int components --
kono
parents:
diff changeset
105 --------------------
kono
parents:
diff changeset
106
kono
parents:
diff changeset
107 type Vint_Range is range 1 .. 4;
kono
parents:
diff changeset
108
kono
parents:
diff changeset
109 type Varray_unsigned_int is array (Vint_Range) of unsigned_int;
kono
parents:
diff changeset
110 for Varray_unsigned_int'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
111
kono
parents:
diff changeset
112 type VUI_View is record
kono
parents:
diff changeset
113 Values : Varray_unsigned_int;
kono
parents:
diff changeset
114 end record;
kono
parents:
diff changeset
115
kono
parents:
diff changeset
116 type Varray_signed_int is array (Vint_Range) of signed_int;
kono
parents:
diff changeset
117 for Varray_signed_int'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
118
kono
parents:
diff changeset
119 type VSI_View is record
kono
parents:
diff changeset
120 Values : Varray_signed_int;
kono
parents:
diff changeset
121 end record;
kono
parents:
diff changeset
122
kono
parents:
diff changeset
123 type Varray_bool_int is array (Vint_Range) of bool_int;
kono
parents:
diff changeset
124 for Varray_bool_int'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
125
kono
parents:
diff changeset
126 type VBI_View is record
kono
parents:
diff changeset
127 Values : Varray_bool_int;
kono
parents:
diff changeset
128 end record;
kono
parents:
diff changeset
129
kono
parents:
diff changeset
130 ----------------------
kono
parents:
diff changeset
131 -- float components --
kono
parents:
diff changeset
132 ----------------------
kono
parents:
diff changeset
133
kono
parents:
diff changeset
134 type Vfloat_Range is range 1 .. 4;
kono
parents:
diff changeset
135
kono
parents:
diff changeset
136 type Varray_float is array (Vfloat_Range) of C_float;
kono
parents:
diff changeset
137 for Varray_float'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
138
kono
parents:
diff changeset
139 type VF_View is record
kono
parents:
diff changeset
140 Values : Varray_float;
kono
parents:
diff changeset
141 end record;
kono
parents:
diff changeset
142
kono
parents:
diff changeset
143 ----------------------
kono
parents:
diff changeset
144 -- pixel components --
kono
parents:
diff changeset
145 ----------------------
kono
parents:
diff changeset
146
kono
parents:
diff changeset
147 type Vpixel_Range is range 1 .. 8;
kono
parents:
diff changeset
148
kono
parents:
diff changeset
149 type Varray_pixel is array (Vpixel_Range) of pixel;
kono
parents:
diff changeset
150 for Varray_pixel'Alignment use VECTOR_ALIGNMENT;
kono
parents:
diff changeset
151
kono
parents:
diff changeset
152 type VP_View is record
kono
parents:
diff changeset
153 Values : Varray_pixel;
kono
parents:
diff changeset
154 end record;
kono
parents:
diff changeset
155
kono
parents:
diff changeset
156 end GNAT.Altivec.Vector_Views;