OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [g-allein.ads] - Blame information for rev 706

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 706 jeremybenn
------------------------------------------------------------------------------
2
--                                                                          --
3
--                         GNAT COMPILER COMPONENTS                         --
4
--                                                                          --
5
--     G N A T . A L T I V E C . L O W _ L E V E L _ I N T E R F A C E      --
6
--                                                                          --
7
--                                 S p e c                                  --
8
--                                                                          --
9
--          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
10
--                                                                          --
11
-- GNAT is free software;  you can  redistribute it  and/or modify it under --
12
-- terms of the  GNU General Public License as published  by the Free Soft- --
13
-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
14
-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
15
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
16
-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
17
--                                                                          --
18
-- As a special exception under Section 7 of GPL version 3, you are granted --
19
-- additional permissions described in the GCC Runtime Library Exception,   --
20
-- version 3.1, as published by the Free Software Foundation.               --
21
--                                                                          --
22
-- You should have received a copy of the GNU General Public License and    --
23
-- a copy of the GCC Runtime Library Exception along with this program;     --
24
-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
25
-- <http://www.gnu.org/licenses/>.                                          --
26
--                                                                          --
27
-- GNAT was originally developed  by the GNAT team at  New York University. --
28
-- Extensive contributions were provided by Ada Core Technologies Inc.      --
29
--                                                                          --
30
------------------------------------------------------------------------------
31
 
32
--  This unit provides entities to be used internally by the units common to
33
--  both bindings (Hard or Soft), and relevant to the interfacing with the
34
--  underlying Low Level support.
35
 
36
--  The set of "services" includes:
37
--
38
--  o Imports to the low level routines for which a direct binding is
39
--    mandatory (or just possible when analyzed as such).
40
--
41
--  o Conversion routines (unchecked) between low level types, or between
42
--    various pointer representations.
43
 
44
with GNAT.Altivec.Vector_Types;
45
with GNAT.Altivec.Low_Level_Vectors;
46
 
47
with Ada.Unchecked_Conversion;
48
 
49
package GNAT.Altivec.Low_Level_Interface is
50
 
51
   ----------------------------------------------------------------------------
52
   -- Imports for "argument must be literal" constraints in the Hard binding --
53
   ----------------------------------------------------------------------------
54
 
55
   use GNAT.Altivec.Vector_Types;
56
 
57
   -- vec_ctf --
58
 
59
   function vec_ctf_vui_cint_r_vf
60
     (A : vector_unsigned_int;
61
      B : c_int) return vector_float;
62
 
63
   pragma Import
64
     (LL_Altivec, vec_ctf_vui_cint_r_vf, "__builtin_altivec_vcfux");
65
 
66
   function vec_ctf_vsi_cint_r_vf
67
     (A : vector_signed_int;
68
      B : c_int) return vector_float;
69
 
70
   pragma Import
71
     (LL_Altivec, vec_ctf_vsi_cint_r_vf, "__builtin_altivec_vcfsx");
72
 
73
   -- vec_vcfsx --
74
 
75
   function vec_vcfsx_vsi_cint_r_vf
76
     (A : vector_signed_int;
77
      B : c_int) return vector_float;
78
 
79
   pragma Import
80
     (LL_Altivec, vec_vcfsx_vsi_cint_r_vf, "__builtin_altivec_vcfsx");
81
 
82
   -- vec_vcfux --
83
 
84
   function vec_vcfux_vui_cint_r_vf
85
     (A : vector_unsigned_int;
86
      B : c_int) return vector_float;
87
 
88
   pragma Import
89
     (LL_Altivec, vec_vcfux_vui_cint_r_vf, "__builtin_altivec_vcfux");
90
 
91
   -- vec_cts --
92
 
93
   function vec_cts_vf_cint_r_vsi
94
     (A : vector_float;
95
      B : c_int) return vector_signed_int;
96
 
97
   pragma Import
98
     (LL_Altivec, vec_cts_vf_cint_r_vsi, "__builtin_altivec_vctsxs");
99
 
100
   -- vec_ctu --
101
 
102
   function vec_ctu_vf_cint_r_vui
103
     (A : vector_float;
104
      B : c_int) return vector_unsigned_int;
105
 
106
   pragma Import
107
     (LL_Altivec, vec_ctu_vf_cint_r_vui, "__builtin_altivec_vctuxs");
108
 
109
   -- vec_dss --
110
 
111
   procedure vec_dss_cint
112
     (A : c_int);
113
 
114
   pragma Import
115
     (LL_Altivec, vec_dss_cint, "__builtin_altivec_dss");
116
 
117
   -- vec_dst --
118
 
119
   procedure vec_dst_kvucp_cint_cint
120
     (A : const_vector_unsigned_char_ptr;
121
      B : c_int;
122
      C : c_int);
123
 
124
   pragma Import
125
     (LL_Altivec, vec_dst_kvucp_cint_cint, "__builtin_altivec_dst");
126
 
127
   procedure vec_dst_kvscp_cint_cint
128
     (A : const_vector_signed_char_ptr;
129
      B : c_int;
130
      C : c_int);
131
 
132
   pragma Import
133
     (LL_Altivec, vec_dst_kvscp_cint_cint, "__builtin_altivec_dst");
134
 
135
   procedure vec_dst_kvbcp_cint_cint
136
     (A : const_vector_bool_char_ptr;
137
      B : c_int;
138
      C : c_int);
139
 
140
   pragma Import
141
     (LL_Altivec, vec_dst_kvbcp_cint_cint, "__builtin_altivec_dst");
142
 
143
   procedure vec_dst_kvusp_cint_cint
144
     (A : const_vector_unsigned_short_ptr;
145
      B : c_int;
146
      C : c_int);
147
 
148
   pragma Import
149
     (LL_Altivec, vec_dst_kvusp_cint_cint, "__builtin_altivec_dst");
150
 
151
   procedure vec_dst_kvssp_cint_cint
152
     (A : const_vector_signed_short_ptr;
153
      B : c_int;
154
      C : c_int);
155
 
156
   pragma Import
157
     (LL_Altivec, vec_dst_kvssp_cint_cint, "__builtin_altivec_dst");
158
 
159
   procedure vec_dst_kvbsp_cint_cint
160
     (A : const_vector_bool_short_ptr;
161
      B : c_int;
162
      C : c_int);
163
 
164
   pragma Import
165
     (LL_Altivec, vec_dst_kvbsp_cint_cint, "__builtin_altivec_dst");
166
 
167
   procedure vec_dst_kvxp_cint_cint
168
     (A : const_vector_pixel_ptr;
169
      B : c_int;
170
      C : c_int);
171
 
172
   pragma Import
173
     (LL_Altivec, vec_dst_kvxp_cint_cint, "__builtin_altivec_dst");
174
 
175
   procedure vec_dst_kvuip_cint_cint
176
     (A : const_vector_unsigned_int_ptr;
177
      B : c_int;
178
      C : c_int);
179
 
180
   pragma Import
181
     (LL_Altivec, vec_dst_kvuip_cint_cint, "__builtin_altivec_dst");
182
 
183
   procedure vec_dst_kvsip_cint_cint
184
     (A : const_vector_signed_int_ptr;
185
      B : c_int;
186
      C : c_int);
187
 
188
   pragma Import
189
     (LL_Altivec, vec_dst_kvsip_cint_cint, "__builtin_altivec_dst");
190
 
191
   procedure vec_dst_kvbip_cint_cint
192
     (A : const_vector_bool_int_ptr;
193
      B : c_int;
194
      C : c_int);
195
 
196
   pragma Import
197
     (LL_Altivec, vec_dst_kvbip_cint_cint, "__builtin_altivec_dst");
198
 
199
   procedure vec_dst_kvfp_cint_cint
200
     (A : const_vector_float_ptr;
201
      B : c_int;
202
      C : c_int);
203
 
204
   pragma Import
205
     (LL_Altivec, vec_dst_kvfp_cint_cint, "__builtin_altivec_dst");
206
 
207
   procedure vec_dst_kucp_cint_cint
208
     (A : const_unsigned_char_ptr;
209
      B : c_int;
210
      C : c_int);
211
 
212
   pragma Import
213
     (LL_Altivec, vec_dst_kucp_cint_cint, "__builtin_altivec_dst");
214
 
215
   procedure vec_dst_kscp_cint_cint
216
     (A : const_signed_char_ptr;
217
      B : c_int;
218
      C : c_int);
219
 
220
   pragma Import
221
     (LL_Altivec, vec_dst_kscp_cint_cint, "__builtin_altivec_dst");
222
 
223
   procedure vec_dst_kusp_cint_cint
224
     (A : const_unsigned_short_ptr;
225
      B : c_int;
226
      C : c_int);
227
 
228
   pragma Import
229
     (LL_Altivec, vec_dst_kusp_cint_cint, "__builtin_altivec_dst");
230
 
231
   procedure vec_dst_ksp_cint_cint
232
     (A : const_short_ptr;
233
      B : c_int;
234
      C : c_int);
235
 
236
   pragma Import
237
     (LL_Altivec, vec_dst_ksp_cint_cint, "__builtin_altivec_dst");
238
 
239
   procedure vec_dst_kuip_cint_cint
240
     (A : const_unsigned_int_ptr;
241
      B : c_int;
242
      C : c_int);
243
 
244
   pragma Import
245
     (LL_Altivec, vec_dst_kuip_cint_cint, "__builtin_altivec_dst");
246
 
247
   procedure vec_dst_kip_cint_cint
248
     (A : const_int_ptr;
249
      B : c_int;
250
      C : c_int);
251
 
252
   pragma Import
253
     (LL_Altivec, vec_dst_kip_cint_cint, "__builtin_altivec_dst");
254
 
255
   procedure vec_dst_kulongp_cint_cint
256
     (A : const_unsigned_long_ptr;
257
      B : c_int;
258
      C : c_int);
259
 
260
   pragma Import
261
     (LL_Altivec, vec_dst_kulongp_cint_cint, "__builtin_altivec_dst");
262
 
263
   procedure vec_dst_klongp_cint_cint
264
     (A : const_long_ptr;
265
      B : c_int;
266
      C : c_int);
267
 
268
   pragma Import
269
     (LL_Altivec, vec_dst_klongp_cint_cint, "__builtin_altivec_dst");
270
 
271
   procedure vec_dst_kfp_cint_cint
272
     (A : const_float_ptr;
273
      B : c_int;
274
      C : c_int);
275
 
276
   pragma Import
277
     (LL_Altivec, vec_dst_kfp_cint_cint, "__builtin_altivec_dst");
278
 
279
   -- vec_dstst --
280
 
281
   procedure vec_dstst_kvucp_cint_cint
282
     (A : const_vector_unsigned_char_ptr;
283
      B : c_int;
284
      C : c_int);
285
 
286
   pragma Import
287
     (LL_Altivec, vec_dstst_kvucp_cint_cint, "__builtin_altivec_dstst");
288
 
289
   procedure vec_dstst_kvscp_cint_cint
290
     (A : const_vector_signed_char_ptr;
291
      B : c_int;
292
      C : c_int);
293
 
294
   pragma Import
295
     (LL_Altivec, vec_dstst_kvscp_cint_cint, "__builtin_altivec_dstst");
296
 
297
   procedure vec_dstst_kvbcp_cint_cint
298
     (A : const_vector_bool_char_ptr;
299
      B : c_int;
300
      C : c_int);
301
 
302
   pragma Import
303
     (LL_Altivec, vec_dstst_kvbcp_cint_cint, "__builtin_altivec_dstst");
304
 
305
   procedure vec_dstst_kvusp_cint_cint
306
     (A : const_vector_unsigned_short_ptr;
307
      B : c_int;
308
      C : c_int);
309
 
310
   pragma Import
311
     (LL_Altivec, vec_dstst_kvusp_cint_cint, "__builtin_altivec_dstst");
312
 
313
   procedure vec_dstst_kvssp_cint_cint
314
     (A : const_vector_signed_short_ptr;
315
      B : c_int;
316
      C : c_int);
317
 
318
   pragma Import
319
     (LL_Altivec, vec_dstst_kvssp_cint_cint, "__builtin_altivec_dstst");
320
 
321
   procedure vec_dstst_kvbsp_cint_cint
322
     (A : const_vector_bool_short_ptr;
323
      B : c_int;
324
      C : c_int);
325
 
326
   pragma Import
327
     (LL_Altivec, vec_dstst_kvbsp_cint_cint, "__builtin_altivec_dstst");
328
 
329
   procedure vec_dstst_kvxp_cint_cint
330
     (A : const_vector_pixel_ptr;
331
      B : c_int;
332
      C : c_int);
333
 
334
   pragma Import
335
     (LL_Altivec, vec_dstst_kvxp_cint_cint, "__builtin_altivec_dstst");
336
 
337
   procedure vec_dstst_kvuip_cint_cint
338
     (A : const_vector_unsigned_int_ptr;
339
      B : c_int;
340
      C : c_int);
341
 
342
   pragma Import
343
     (LL_Altivec, vec_dstst_kvuip_cint_cint, "__builtin_altivec_dstst");
344
 
345
   procedure vec_dstst_kvsip_cint_cint
346
     (A : const_vector_signed_int_ptr;
347
      B : c_int;
348
      C : c_int);
349
 
350
   pragma Import
351
     (LL_Altivec, vec_dstst_kvsip_cint_cint, "__builtin_altivec_dstst");
352
 
353
   procedure vec_dstst_kvbip_cint_cint
354
     (A : const_vector_bool_int_ptr;
355
      B : c_int;
356
      C : c_int);
357
 
358
   pragma Import
359
     (LL_Altivec, vec_dstst_kvbip_cint_cint, "__builtin_altivec_dstst");
360
 
361
   procedure vec_dstst_kvfp_cint_cint
362
     (A : const_vector_float_ptr;
363
      B : c_int;
364
      C : c_int);
365
 
366
   pragma Import
367
     (LL_Altivec, vec_dstst_kvfp_cint_cint, "__builtin_altivec_dstst");
368
 
369
   procedure vec_dstst_kucp_cint_cint
370
     (A : const_unsigned_char_ptr;
371
      B : c_int;
372
      C : c_int);
373
 
374
   pragma Import
375
     (LL_Altivec, vec_dstst_kucp_cint_cint, "__builtin_altivec_dstst");
376
 
377
   procedure vec_dstst_kscp_cint_cint
378
     (A : const_signed_char_ptr;
379
      B : c_int;
380
      C : c_int);
381
 
382
   pragma Import
383
     (LL_Altivec, vec_dstst_kscp_cint_cint, "__builtin_altivec_dstst");
384
 
385
   procedure vec_dstst_kusp_cint_cint
386
     (A : const_unsigned_short_ptr;
387
      B : c_int;
388
      C : c_int);
389
 
390
   pragma Import
391
     (LL_Altivec, vec_dstst_kusp_cint_cint, "__builtin_altivec_dstst");
392
 
393
   procedure vec_dstst_ksp_cint_cint
394
     (A : const_short_ptr;
395
      B : c_int;
396
      C : c_int);
397
 
398
   pragma Import
399
     (LL_Altivec, vec_dstst_ksp_cint_cint, "__builtin_altivec_dstst");
400
 
401
   procedure vec_dstst_kuip_cint_cint
402
     (A : const_unsigned_int_ptr;
403
      B : c_int;
404
      C : c_int);
405
 
406
   pragma Import
407
     (LL_Altivec, vec_dstst_kuip_cint_cint, "__builtin_altivec_dstst");
408
 
409
   procedure vec_dstst_kip_cint_cint
410
     (A : const_int_ptr;
411
      B : c_int;
412
      C : c_int);
413
 
414
   pragma Import
415
     (LL_Altivec, vec_dstst_kip_cint_cint, "__builtin_altivec_dstst");
416
 
417
   procedure vec_dstst_kulongp_cint_cint
418
     (A : const_unsigned_long_ptr;
419
      B : c_int;
420
      C : c_int);
421
 
422
   pragma Import
423
     (LL_Altivec, vec_dstst_kulongp_cint_cint, "__builtin_altivec_dstst");
424
 
425
   procedure vec_dstst_klongp_cint_cint
426
     (A : const_long_ptr;
427
      B : c_int;
428
      C : c_int);
429
 
430
   pragma Import
431
     (LL_Altivec, vec_dstst_klongp_cint_cint, "__builtin_altivec_dstst");
432
 
433
   procedure vec_dstst_kfp_cint_cint
434
     (A : const_float_ptr;
435
      B : c_int;
436
      C : c_int);
437
 
438
   pragma Import
439
     (LL_Altivec, vec_dstst_kfp_cint_cint, "__builtin_altivec_dstst");
440
 
441
   -- vec_dststt --
442
 
443
   procedure vec_dststt_kvucp_cint_cint
444
     (A : const_vector_unsigned_char_ptr;
445
      B : c_int;
446
      C : c_int);
447
 
448
   pragma Import
449
     (LL_Altivec, vec_dststt_kvucp_cint_cint, "__builtin_altivec_dststt");
450
 
451
   procedure vec_dststt_kvscp_cint_cint
452
     (A : const_vector_signed_char_ptr;
453
      B : c_int;
454
      C : c_int);
455
 
456
   pragma Import
457
     (LL_Altivec, vec_dststt_kvscp_cint_cint, "__builtin_altivec_dststt");
458
 
459
   procedure vec_dststt_kvbcp_cint_cint
460
     (A : const_vector_bool_char_ptr;
461
      B : c_int;
462
      C : c_int);
463
 
464
   pragma Import
465
     (LL_Altivec, vec_dststt_kvbcp_cint_cint, "__builtin_altivec_dststt");
466
 
467
   procedure vec_dststt_kvusp_cint_cint
468
     (A : const_vector_unsigned_short_ptr;
469
      B : c_int;
470
      C : c_int);
471
 
472
   pragma Import
473
     (LL_Altivec, vec_dststt_kvusp_cint_cint, "__builtin_altivec_dststt");
474
 
475
   procedure vec_dststt_kvssp_cint_cint
476
     (A : const_vector_signed_short_ptr;
477
      B : c_int;
478
      C : c_int);
479
 
480
   pragma Import
481
     (LL_Altivec, vec_dststt_kvssp_cint_cint, "__builtin_altivec_dststt");
482
 
483
   procedure vec_dststt_kvbsp_cint_cint
484
     (A : const_vector_bool_short_ptr;
485
      B : c_int;
486
      C : c_int);
487
 
488
   pragma Import
489
     (LL_Altivec, vec_dststt_kvbsp_cint_cint, "__builtin_altivec_dststt");
490
 
491
   procedure vec_dststt_kvxp_cint_cint
492
     (A : const_vector_pixel_ptr;
493
      B : c_int;
494
      C : c_int);
495
 
496
   pragma Import
497
     (LL_Altivec, vec_dststt_kvxp_cint_cint, "__builtin_altivec_dststt");
498
 
499
   procedure vec_dststt_kvuip_cint_cint
500
     (A : const_vector_unsigned_int_ptr;
501
      B : c_int;
502
      C : c_int);
503
 
504
   pragma Import
505
     (LL_Altivec, vec_dststt_kvuip_cint_cint, "__builtin_altivec_dststt");
506
 
507
   procedure vec_dststt_kvsip_cint_cint
508
     (A : const_vector_signed_int_ptr;
509
      B : c_int;
510
      C : c_int);
511
 
512
   pragma Import
513
     (LL_Altivec, vec_dststt_kvsip_cint_cint, "__builtin_altivec_dststt");
514
 
515
   procedure vec_dststt_kvbip_cint_cint
516
     (A : const_vector_bool_int_ptr;
517
      B : c_int;
518
      C : c_int);
519
 
520
   pragma Import
521
     (LL_Altivec, vec_dststt_kvbip_cint_cint, "__builtin_altivec_dststt");
522
 
523
   procedure vec_dststt_kvfp_cint_cint
524
     (A : const_vector_float_ptr;
525
      B : c_int;
526
      C : c_int);
527
 
528
   pragma Import
529
     (LL_Altivec, vec_dststt_kvfp_cint_cint, "__builtin_altivec_dststt");
530
 
531
   procedure vec_dststt_kucp_cint_cint
532
     (A : const_unsigned_char_ptr;
533
      B : c_int;
534
      C : c_int);
535
 
536
   pragma Import
537
     (LL_Altivec, vec_dststt_kucp_cint_cint, "__builtin_altivec_dststt");
538
 
539
   procedure vec_dststt_kscp_cint_cint
540
     (A : const_signed_char_ptr;
541
      B : c_int;
542
      C : c_int);
543
 
544
   pragma Import
545
     (LL_Altivec, vec_dststt_kscp_cint_cint, "__builtin_altivec_dststt");
546
 
547
   procedure vec_dststt_kusp_cint_cint
548
     (A : const_unsigned_short_ptr;
549
      B : c_int;
550
      C : c_int);
551
 
552
   pragma Import
553
     (LL_Altivec, vec_dststt_kusp_cint_cint, "__builtin_altivec_dststt");
554
 
555
   procedure vec_dststt_ksp_cint_cint
556
     (A : const_short_ptr;
557
      B : c_int;
558
      C : c_int);
559
 
560
   pragma Import
561
     (LL_Altivec, vec_dststt_ksp_cint_cint, "__builtin_altivec_dststt");
562
 
563
   procedure vec_dststt_kuip_cint_cint
564
     (A : const_unsigned_int_ptr;
565
      B : c_int;
566
      C : c_int);
567
 
568
   pragma Import
569
     (LL_Altivec, vec_dststt_kuip_cint_cint, "__builtin_altivec_dststt");
570
 
571
   procedure vec_dststt_kip_cint_cint
572
     (A : const_int_ptr;
573
      B : c_int;
574
      C : c_int);
575
 
576
   pragma Import
577
     (LL_Altivec, vec_dststt_kip_cint_cint, "__builtin_altivec_dststt");
578
 
579
   procedure vec_dststt_kulongp_cint_cint
580
     (A : const_unsigned_long_ptr;
581
      B : c_int;
582
      C : c_int);
583
 
584
   pragma Import
585
     (LL_Altivec, vec_dststt_kulongp_cint_cint, "__builtin_altivec_dststt");
586
 
587
   procedure vec_dststt_klongp_cint_cint
588
     (A : const_long_ptr;
589
      B : c_int;
590
      C : c_int);
591
 
592
   pragma Import
593
     (LL_Altivec, vec_dststt_klongp_cint_cint, "__builtin_altivec_dststt");
594
 
595
   procedure vec_dststt_kfp_cint_cint
596
     (A : const_float_ptr;
597
      B : c_int;
598
      C : c_int);
599
 
600
   pragma Import
601
     (LL_Altivec, vec_dststt_kfp_cint_cint, "__builtin_altivec_dststt");
602
 
603
   -- vec_dstt --
604
 
605
   procedure vec_dstt_kvucp_cint_cint
606
     (A : const_vector_unsigned_char_ptr;
607
      B : c_int;
608
      C : c_int);
609
 
610
   pragma Import
611
     (LL_Altivec, vec_dstt_kvucp_cint_cint, "__builtin_altivec_dstt");
612
 
613
   procedure vec_dstt_kvscp_cint_cint
614
     (A : const_vector_signed_char_ptr;
615
      B : c_int;
616
      C : c_int);
617
 
618
   pragma Import
619
     (LL_Altivec, vec_dstt_kvscp_cint_cint, "__builtin_altivec_dstt");
620
 
621
   procedure vec_dstt_kvbcp_cint_cint
622
     (A : const_vector_bool_char_ptr;
623
      B : c_int;
624
      C : c_int);
625
 
626
   pragma Import
627
     (LL_Altivec, vec_dstt_kvbcp_cint_cint, "__builtin_altivec_dstt");
628
 
629
   procedure vec_dstt_kvusp_cint_cint
630
     (A : const_vector_unsigned_short_ptr;
631
      B : c_int;
632
      C : c_int);
633
 
634
   pragma Import
635
     (LL_Altivec, vec_dstt_kvusp_cint_cint, "__builtin_altivec_dstt");
636
 
637
   procedure vec_dstt_kvssp_cint_cint
638
     (A : const_vector_signed_short_ptr;
639
      B : c_int;
640
      C : c_int);
641
 
642
   pragma Import
643
     (LL_Altivec, vec_dstt_kvssp_cint_cint, "__builtin_altivec_dstt");
644
 
645
   procedure vec_dstt_kvbsp_cint_cint
646
     (A : const_vector_bool_short_ptr;
647
      B : c_int;
648
      C : c_int);
649
 
650
   pragma Import
651
     (LL_Altivec, vec_dstt_kvbsp_cint_cint, "__builtin_altivec_dstt");
652
 
653
   procedure vec_dstt_kvxp_cint_cint
654
     (A : const_vector_pixel_ptr;
655
      B : c_int;
656
      C : c_int);
657
 
658
   pragma Import
659
     (LL_Altivec, vec_dstt_kvxp_cint_cint, "__builtin_altivec_dstt");
660
 
661
   procedure vec_dstt_kvuip_cint_cint
662
     (A : const_vector_unsigned_int_ptr;
663
      B : c_int;
664
      C : c_int);
665
 
666
   pragma Import
667
     (LL_Altivec, vec_dstt_kvuip_cint_cint, "__builtin_altivec_dstt");
668
 
669
   procedure vec_dstt_kvsip_cint_cint
670
     (A : const_vector_signed_int_ptr;
671
      B : c_int;
672
      C : c_int);
673
 
674
   pragma Import
675
     (LL_Altivec, vec_dstt_kvsip_cint_cint, "__builtin_altivec_dstt");
676
 
677
   procedure vec_dstt_kvbip_cint_cint
678
     (A : const_vector_bool_int_ptr;
679
      B : c_int;
680
      C : c_int);
681
 
682
   pragma Import
683
     (LL_Altivec, vec_dstt_kvbip_cint_cint, "__builtin_altivec_dstt");
684
 
685
   procedure vec_dstt_kvfp_cint_cint
686
     (A : const_vector_float_ptr;
687
      B : c_int;
688
      C : c_int);
689
 
690
   pragma Import
691
     (LL_Altivec, vec_dstt_kvfp_cint_cint, "__builtin_altivec_dstt");
692
 
693
   procedure vec_dstt_kucp_cint_cint
694
     (A : const_unsigned_char_ptr;
695
      B : c_int;
696
      C : c_int);
697
 
698
   pragma Import
699
     (LL_Altivec, vec_dstt_kucp_cint_cint, "__builtin_altivec_dstt");
700
 
701
   procedure vec_dstt_kscp_cint_cint
702
     (A : const_signed_char_ptr;
703
      B : c_int;
704
      C : c_int);
705
 
706
   pragma Import
707
     (LL_Altivec, vec_dstt_kscp_cint_cint, "__builtin_altivec_dstt");
708
 
709
   procedure vec_dstt_kusp_cint_cint
710
     (A : const_unsigned_short_ptr;
711
      B : c_int;
712
      C : c_int);
713
 
714
   pragma Import
715
     (LL_Altivec, vec_dstt_kusp_cint_cint, "__builtin_altivec_dstt");
716
 
717
   procedure vec_dstt_ksp_cint_cint
718
     (A : const_short_ptr;
719
      B : c_int;
720
      C : c_int);
721
 
722
   pragma Import
723
     (LL_Altivec, vec_dstt_ksp_cint_cint, "__builtin_altivec_dstt");
724
 
725
   procedure vec_dstt_kuip_cint_cint
726
     (A : const_unsigned_int_ptr;
727
      B : c_int;
728
      C : c_int);
729
 
730
   pragma Import
731
     (LL_Altivec, vec_dstt_kuip_cint_cint, "__builtin_altivec_dstt");
732
 
733
   procedure vec_dstt_kip_cint_cint
734
     (A : const_int_ptr;
735
      B : c_int;
736
      C : c_int);
737
 
738
   pragma Import
739
     (LL_Altivec, vec_dstt_kip_cint_cint, "__builtin_altivec_dstt");
740
 
741
   procedure vec_dstt_kulongp_cint_cint
742
     (A : const_unsigned_long_ptr;
743
      B : c_int;
744
      C : c_int);
745
 
746
   pragma Import
747
     (LL_Altivec, vec_dstt_kulongp_cint_cint, "__builtin_altivec_dstt");
748
 
749
   procedure vec_dstt_klongp_cint_cint
750
     (A : const_long_ptr;
751
      B : c_int;
752
      C : c_int);
753
 
754
   pragma Import
755
     (LL_Altivec, vec_dstt_klongp_cint_cint, "__builtin_altivec_dstt");
756
 
757
   procedure vec_dstt_kfp_cint_cint
758
     (A : const_float_ptr;
759
      B : c_int;
760
      C : c_int);
761
 
762
   pragma Import
763
     (LL_Altivec, vec_dstt_kfp_cint_cint, "__builtin_altivec_dstt");
764
 
765
   -- vec_sld --
766
 
767
   --  ??? The base GCC implementation maps everything to vsldoi_4si, while
768
   --  it defines builtin variants for all the modes. Adjust here, to avoid
769
   --  the infamous argument mode mismatch.
770
 
771
   function vec_sld_vf_vf_cint_r_vf
772
     (A : vector_float;
773
      B : vector_float;
774
      C : c_int) return vector_float;
775
 
776
   pragma Import
777
     (LL_Altivec, vec_sld_vf_vf_cint_r_vf, "__builtin_altivec_vsldoi_4sf");
778
 
779
   function vec_sld_vsi_vsi_cint_r_vsi
780
     (A : vector_signed_int;
781
      B : vector_signed_int;
782
      C : c_int) return vector_signed_int;
783
 
784
   pragma Import
785
     (LL_Altivec, vec_sld_vsi_vsi_cint_r_vsi, "__builtin_altivec_vsldoi_4si");
786
 
787
   function vec_sld_vui_vui_cint_r_vui
788
     (A : vector_unsigned_int;
789
      B : vector_unsigned_int;
790
      C : c_int) return vector_unsigned_int;
791
 
792
   pragma Import
793
     (LL_Altivec, vec_sld_vui_vui_cint_r_vui, "__builtin_altivec_vsldoi_4si");
794
 
795
   function vec_sld_vbi_vbi_cint_r_vbi
796
     (A : vector_bool_int;
797
      B : vector_bool_int;
798
      C : c_int) return vector_bool_int;
799
 
800
   pragma Import
801
     (LL_Altivec, vec_sld_vbi_vbi_cint_r_vbi, "__builtin_altivec_vsldoi_4si");
802
 
803
   function vec_sld_vss_vss_cint_r_vss
804
     (A : vector_signed_short;
805
      B : vector_signed_short;
806
      C : c_int) return vector_signed_short;
807
 
808
   pragma Import
809
     (LL_Altivec, vec_sld_vss_vss_cint_r_vss, "__builtin_altivec_vsldoi_8hi");
810
 
811
   function vec_sld_vus_vus_cint_r_vus
812
     (A : vector_unsigned_short;
813
      B : vector_unsigned_short;
814
      C : c_int) return vector_unsigned_short;
815
 
816
   pragma Import
817
     (LL_Altivec, vec_sld_vus_vus_cint_r_vus, "__builtin_altivec_vsldoi_8hi");
818
 
819
   function vec_sld_vbs_vbs_cint_r_vbs
820
     (A : vector_bool_short;
821
      B : vector_bool_short;
822
      C : c_int) return vector_bool_short;
823
 
824
   pragma Import
825
     (LL_Altivec, vec_sld_vbs_vbs_cint_r_vbs, "__builtin_altivec_vsldoi_8hi");
826
 
827
   function vec_sld_vx_vx_cint_r_vx
828
     (A : vector_pixel;
829
      B : vector_pixel;
830
      C : c_int) return vector_pixel;
831
 
832
   pragma Import
833
     (LL_Altivec, vec_sld_vx_vx_cint_r_vx, "__builtin_altivec_vsldoi_4si");
834
 
835
   function vec_sld_vsc_vsc_cint_r_vsc
836
     (A : vector_signed_char;
837
      B : vector_signed_char;
838
      C : c_int) return vector_signed_char;
839
 
840
   pragma Import
841
     (LL_Altivec, vec_sld_vsc_vsc_cint_r_vsc, "__builtin_altivec_vsldoi_16qi");
842
 
843
   function vec_sld_vuc_vuc_cint_r_vuc
844
     (A : vector_unsigned_char;
845
      B : vector_unsigned_char;
846
      C : c_int) return vector_unsigned_char;
847
 
848
   pragma Import
849
     (LL_Altivec, vec_sld_vuc_vuc_cint_r_vuc, "__builtin_altivec_vsldoi_16qi");
850
 
851
   function vec_sld_vbc_vbc_cint_r_vbc
852
     (A : vector_bool_char;
853
      B : vector_bool_char;
854
      C : c_int) return vector_bool_char;
855
 
856
   pragma Import
857
     (LL_Altivec, vec_sld_vbc_vbc_cint_r_vbc, "__builtin_altivec_vsldoi_16qi");
858
 
859
   -- vec_splat --
860
 
861
   function vec_splat_vsc_cint_r_vsc
862
     (A : vector_signed_char;
863
      B : c_int) return vector_signed_char;
864
 
865
   pragma Import
866
     (LL_Altivec, vec_splat_vsc_cint_r_vsc, "__builtin_altivec_vspltb");
867
 
868
   function vec_splat_vuc_cint_r_vuc
869
     (A : vector_unsigned_char;
870
      B : c_int) return vector_unsigned_char;
871
 
872
   pragma Import
873
     (LL_Altivec, vec_splat_vuc_cint_r_vuc, "__builtin_altivec_vspltb");
874
 
875
   function vec_splat_vbc_cint_r_vbc
876
     (A : vector_bool_char;
877
      B : c_int) return vector_bool_char;
878
 
879
   pragma Import
880
     (LL_Altivec, vec_splat_vbc_cint_r_vbc, "__builtin_altivec_vspltb");
881
 
882
   function vec_splat_vss_cint_r_vss
883
     (A : vector_signed_short;
884
      B : c_int) return vector_signed_short;
885
 
886
   pragma Import
887
     (LL_Altivec, vec_splat_vss_cint_r_vss, "__builtin_altivec_vsplth");
888
 
889
   function vec_splat_vus_cint_r_vus
890
     (A : vector_unsigned_short;
891
      B : c_int) return vector_unsigned_short;
892
 
893
   pragma Import
894
     (LL_Altivec, vec_splat_vus_cint_r_vus, "__builtin_altivec_vsplth");
895
 
896
   function vec_splat_vbs_cint_r_vbs
897
     (A : vector_bool_short;
898
      B : c_int) return vector_bool_short;
899
 
900
   pragma Import
901
     (LL_Altivec, vec_splat_vbs_cint_r_vbs, "__builtin_altivec_vsplth");
902
 
903
   function vec_splat_vx_cint_r_vx
904
     (A : vector_pixel;
905
      B : c_int) return vector_pixel;
906
 
907
   pragma Import
908
     (LL_Altivec, vec_splat_vx_cint_r_vx, "__builtin_altivec_vsplth");
909
 
910
   function vec_splat_vf_cint_r_vf
911
     (A : vector_float;
912
      B : c_int) return vector_float;
913
 
914
   pragma Import
915
     (LL_Altivec, vec_splat_vf_cint_r_vf, "__builtin_altivec_vspltw");
916
 
917
   function vec_splat_vsi_cint_r_vsi
918
     (A : vector_signed_int;
919
      B : c_int) return vector_signed_int;
920
 
921
   pragma Import
922
     (LL_Altivec, vec_splat_vsi_cint_r_vsi, "__builtin_altivec_vspltw");
923
 
924
   function vec_splat_vui_cint_r_vui
925
     (A : vector_unsigned_int;
926
      B : c_int) return vector_unsigned_int;
927
 
928
   pragma Import
929
     (LL_Altivec, vec_splat_vui_cint_r_vui, "__builtin_altivec_vspltw");
930
 
931
   function vec_splat_vbi_cint_r_vbi
932
     (A : vector_bool_int;
933
      B : c_int) return vector_bool_int;
934
 
935
   pragma Import
936
     (LL_Altivec, vec_splat_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
937
 
938
   -- vec_vspltw --
939
 
940
   function vec_vspltw_vf_cint_r_vf
941
     (A : vector_float;
942
      B : c_int) return vector_float;
943
 
944
   pragma Import
945
     (LL_Altivec, vec_vspltw_vf_cint_r_vf, "__builtin_altivec_vspltw");
946
 
947
   function vec_vspltw_vsi_cint_r_vsi
948
     (A : vector_signed_int;
949
      B : c_int) return vector_signed_int;
950
 
951
   pragma Import
952
     (LL_Altivec, vec_vspltw_vsi_cint_r_vsi, "__builtin_altivec_vspltw");
953
 
954
   function vec_vspltw_vui_cint_r_vui
955
     (A : vector_unsigned_int;
956
      B : c_int) return vector_unsigned_int;
957
 
958
   pragma Import
959
     (LL_Altivec, vec_vspltw_vui_cint_r_vui, "__builtin_altivec_vspltw");
960
 
961
   function vec_vspltw_vbi_cint_r_vbi
962
     (A : vector_bool_int;
963
      B : c_int) return vector_bool_int;
964
 
965
   pragma Import
966
     (LL_Altivec, vec_vspltw_vbi_cint_r_vbi, "__builtin_altivec_vspltw");
967
 
968
   -- vec_vsplth --
969
 
970
   function vec_vsplth_vbs_cint_r_vbs
971
     (A : vector_bool_short;
972
      B : c_int) return vector_bool_short;
973
 
974
   pragma Import
975
     (LL_Altivec, vec_vsplth_vbs_cint_r_vbs, "__builtin_altivec_vsplth");
976
 
977
   function vec_vsplth_vss_cint_r_vss
978
     (A : vector_signed_short;
979
      B : c_int) return vector_signed_short;
980
 
981
   pragma Import
982
     (LL_Altivec, vec_vsplth_vss_cint_r_vss, "__builtin_altivec_vsplth");
983
 
984
   function vec_vsplth_vus_cint_r_vus
985
     (A : vector_unsigned_short;
986
      B : c_int) return vector_unsigned_short;
987
 
988
   pragma Import
989
     (LL_Altivec, vec_vsplth_vus_cint_r_vus, "__builtin_altivec_vsplth");
990
 
991
   function vec_vsplth_vx_cint_r_vx
992
     (A : vector_pixel;
993
      B : c_int) return vector_pixel;
994
 
995
   pragma Import
996
     (LL_Altivec, vec_vsplth_vx_cint_r_vx, "__builtin_altivec_vsplth");
997
 
998
   -- vec_vspltb --
999
 
1000
   function vec_vspltb_vsc_cint_r_vsc
1001
     (A : vector_signed_char;
1002
      B : c_int) return vector_signed_char;
1003
 
1004
   pragma Import
1005
     (LL_Altivec, vec_vspltb_vsc_cint_r_vsc, "__builtin_altivec_vspltb");
1006
 
1007
   function vec_vspltb_vuc_cint_r_vuc
1008
     (A : vector_unsigned_char;
1009
      B : c_int) return vector_unsigned_char;
1010
 
1011
   pragma Import
1012
     (LL_Altivec, vec_vspltb_vuc_cint_r_vuc, "__builtin_altivec_vspltb");
1013
 
1014
   function vec_vspltb_vbc_cint_r_vbc
1015
     (A : vector_bool_char;
1016
      B : c_int) return vector_bool_char;
1017
 
1018
   pragma Import
1019
     (LL_Altivec, vec_vspltb_vbc_cint_r_vbc, "__builtin_altivec_vspltb");
1020
 
1021
   -- vec_splat_s8 --
1022
 
1023
   function vec_splat_s8_cint_r_vsc
1024
     (A : c_int) return vector_signed_char;
1025
 
1026
   pragma Import
1027
     (LL_Altivec, vec_splat_s8_cint_r_vsc, "__builtin_altivec_vspltisb");
1028
 
1029
   -- vec_splat_s16 --
1030
 
1031
   function vec_splat_s16_cint_r_vss
1032
     (A : c_int) return vector_signed_short;
1033
 
1034
   pragma Import
1035
     (LL_Altivec, vec_splat_s16_cint_r_vss, "__builtin_altivec_vspltish");
1036
 
1037
   -- vec_splat_s32 --
1038
 
1039
   function vec_splat_s32_cint_r_vsi
1040
     (A : c_int) return vector_signed_int;
1041
 
1042
   pragma Import
1043
     (LL_Altivec, vec_splat_s32_cint_r_vsi, "__builtin_altivec_vspltisw");
1044
 
1045
   -- vec_splat_u8 --
1046
 
1047
   function vec_splat_u8_cint_r_vuc
1048
     (A : c_int) return vector_unsigned_char;
1049
 
1050
   pragma Import
1051
     (LL_Altivec, vec_splat_u8_cint_r_vuc, "__builtin_altivec_vspltisb");
1052
 
1053
   -- vec_splat_u16 --
1054
 
1055
   function vec_splat_u16_cint_r_vus
1056
     (A : c_int) return vector_unsigned_short;
1057
 
1058
   pragma Import
1059
     (LL_Altivec, vec_splat_u16_cint_r_vus, "__builtin_altivec_vspltish");
1060
 
1061
   -- vec_splat_u32 --
1062
 
1063
   function vec_splat_u32_cint_r_vui
1064
     (A : c_int) return vector_unsigned_int;
1065
 
1066
   pragma Import
1067
     (LL_Altivec, vec_splat_u32_cint_r_vui, "__builtin_altivec_vspltisw");
1068
 
1069
   ------------------------------------------------------------
1070
   -- Imports for low-level signature consistent subprograms --
1071
   ------------------------------------------------------------
1072
 
1073
   -- vec_dssall --
1074
 
1075
   procedure vec_dssall;
1076
 
1077
   pragma Import
1078
     (LL_Altivec, vec_dssall, "__builtin_altivec_dssall");
1079
 
1080
   -----------------------------------------
1081
   -- Conversions between low level types --
1082
   -----------------------------------------
1083
 
1084
   use GNAT.Altivec.Low_Level_Vectors;
1085
 
1086
   --  Something like...
1087
   --
1088
   --  TYPES="LL_VBC LL_VUC LL_VSC LL_VBS LL_VUS LL_VSS \
1089
   --         LL_VBI LL_VUI LL_VSI LL_VF LL_VP"
1090
   --  for TT in `echo $TYPES`; do
1091
   --  for ST in `echo $TYPES`; do
1092
   --  echo "function To_$TT is new Ada.Unchecked_Conversion ($ST, $TT);"
1093
   --  done
1094
   --  echo ""
1095
   --  done
1096
 
1097
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBC, LL_VBC);
1098
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUC, LL_VBC);
1099
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSC, LL_VBC);
1100
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBS, LL_VBC);
1101
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUS, LL_VBC);
1102
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSS, LL_VBC);
1103
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VBI, LL_VBC);
1104
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VUI, LL_VBC);
1105
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VSI, LL_VBC);
1106
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VF, LL_VBC);
1107
   function To_LL_VBC is new Ada.Unchecked_Conversion (LL_VP, LL_VBC);
1108
 
1109
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBC, LL_VUC);
1110
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUC, LL_VUC);
1111
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSC, LL_VUC);
1112
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBS, LL_VUC);
1113
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUS, LL_VUC);
1114
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSS, LL_VUC);
1115
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VBI, LL_VUC);
1116
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VUI, LL_VUC);
1117
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VSI, LL_VUC);
1118
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VF, LL_VUC);
1119
   function To_LL_VUC is new Ada.Unchecked_Conversion (LL_VP, LL_VUC);
1120
 
1121
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBC, LL_VSC);
1122
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUC, LL_VSC);
1123
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSC, LL_VSC);
1124
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBS, LL_VSC);
1125
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUS, LL_VSC);
1126
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSS, LL_VSC);
1127
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VBI, LL_VSC);
1128
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VUI, LL_VSC);
1129
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VSI, LL_VSC);
1130
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VF, LL_VSC);
1131
   function To_LL_VSC is new Ada.Unchecked_Conversion (LL_VP, LL_VSC);
1132
 
1133
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBC, LL_VBS);
1134
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUC, LL_VBS);
1135
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSC, LL_VBS);
1136
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBS, LL_VBS);
1137
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUS, LL_VBS);
1138
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSS, LL_VBS);
1139
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VBI, LL_VBS);
1140
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VUI, LL_VBS);
1141
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VSI, LL_VBS);
1142
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VF, LL_VBS);
1143
   function To_LL_VBS is new Ada.Unchecked_Conversion (LL_VP, LL_VBS);
1144
 
1145
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBC, LL_VUS);
1146
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUC, LL_VUS);
1147
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSC, LL_VUS);
1148
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBS, LL_VUS);
1149
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUS, LL_VUS);
1150
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSS, LL_VUS);
1151
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VBI, LL_VUS);
1152
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VUI, LL_VUS);
1153
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VSI, LL_VUS);
1154
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VF, LL_VUS);
1155
   function To_LL_VUS is new Ada.Unchecked_Conversion (LL_VP, LL_VUS);
1156
 
1157
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBC, LL_VSS);
1158
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUC, LL_VSS);
1159
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSC, LL_VSS);
1160
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBS, LL_VSS);
1161
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUS, LL_VSS);
1162
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSS, LL_VSS);
1163
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VBI, LL_VSS);
1164
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VUI, LL_VSS);
1165
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VSI, LL_VSS);
1166
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VF, LL_VSS);
1167
   function To_LL_VSS is new Ada.Unchecked_Conversion (LL_VP, LL_VSS);
1168
 
1169
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBC, LL_VBI);
1170
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUC, LL_VBI);
1171
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSC, LL_VBI);
1172
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBS, LL_VBI);
1173
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUS, LL_VBI);
1174
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSS, LL_VBI);
1175
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VBI, LL_VBI);
1176
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VUI, LL_VBI);
1177
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VSI, LL_VBI);
1178
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VF, LL_VBI);
1179
   function To_LL_VBI is new Ada.Unchecked_Conversion (LL_VP, LL_VBI);
1180
 
1181
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBC, LL_VUI);
1182
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUC, LL_VUI);
1183
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSC, LL_VUI);
1184
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBS, LL_VUI);
1185
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUS, LL_VUI);
1186
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSS, LL_VUI);
1187
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VBI, LL_VUI);
1188
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VUI, LL_VUI);
1189
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VSI, LL_VUI);
1190
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VF, LL_VUI);
1191
   function To_LL_VUI is new Ada.Unchecked_Conversion (LL_VP, LL_VUI);
1192
 
1193
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBC, LL_VSI);
1194
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUC, LL_VSI);
1195
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSC, LL_VSI);
1196
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBS, LL_VSI);
1197
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUS, LL_VSI);
1198
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSS, LL_VSI);
1199
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VBI, LL_VSI);
1200
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VUI, LL_VSI);
1201
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VSI, LL_VSI);
1202
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VF, LL_VSI);
1203
   function To_LL_VSI is new Ada.Unchecked_Conversion (LL_VP, LL_VSI);
1204
 
1205
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBC, LL_VF);
1206
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUC, LL_VF);
1207
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSC, LL_VF);
1208
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBS, LL_VF);
1209
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUS, LL_VF);
1210
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSS, LL_VF);
1211
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VBI, LL_VF);
1212
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VUI, LL_VF);
1213
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VSI, LL_VF);
1214
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VF, LL_VF);
1215
   function To_LL_VF is new Ada.Unchecked_Conversion (LL_VP, LL_VF);
1216
 
1217
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBC, LL_VP);
1218
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUC, LL_VP);
1219
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSC, LL_VP);
1220
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBS, LL_VP);
1221
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUS, LL_VP);
1222
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSS, LL_VP);
1223
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VBI, LL_VP);
1224
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VUI, LL_VP);
1225
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VSI, LL_VP);
1226
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VF, LL_VP);
1227
   function To_LL_VP is new Ada.Unchecked_Conversion (LL_VP, LL_VP);
1228
 
1229
   ----------------------------------------------
1230
   -- Conversions between pointer/access types --
1231
   ----------------------------------------------
1232
 
1233
   function To_PTR is
1234
      new Ada.Unchecked_Conversion (vector_unsigned_char_ptr, c_ptr);
1235
   function To_PTR is
1236
      new Ada.Unchecked_Conversion (vector_signed_char_ptr, c_ptr);
1237
   function To_PTR is
1238
      new Ada.Unchecked_Conversion (vector_bool_char_ptr, c_ptr);
1239
   function To_PTR is
1240
      new Ada.Unchecked_Conversion (vector_unsigned_short_ptr, c_ptr);
1241
   function To_PTR is
1242
      new Ada.Unchecked_Conversion (vector_signed_short_ptr, c_ptr);
1243
   function To_PTR is
1244
      new Ada.Unchecked_Conversion (vector_bool_short_ptr, c_ptr);
1245
   function To_PTR is
1246
      new Ada.Unchecked_Conversion (vector_unsigned_int_ptr, c_ptr);
1247
   function To_PTR is
1248
      new Ada.Unchecked_Conversion (vector_signed_int_ptr, c_ptr);
1249
   function To_PTR is
1250
      new Ada.Unchecked_Conversion (vector_bool_int_ptr, c_ptr);
1251
   function To_PTR is
1252
      new Ada.Unchecked_Conversion (vector_float_ptr, c_ptr);
1253
   function To_PTR is
1254
      new Ada.Unchecked_Conversion (vector_pixel_ptr, c_ptr);
1255
   function To_PTR is
1256
      new Ada.Unchecked_Conversion (const_vector_bool_char_ptr, c_ptr);
1257
   function To_PTR is
1258
      new Ada.Unchecked_Conversion (const_vector_signed_char_ptr, c_ptr);
1259
   function To_PTR is
1260
      new Ada.Unchecked_Conversion (const_vector_unsigned_char_ptr, c_ptr);
1261
   function To_PTR is
1262
      new Ada.Unchecked_Conversion (const_vector_bool_short_ptr, c_ptr);
1263
   function To_PTR is
1264
      new Ada.Unchecked_Conversion (const_vector_signed_short_ptr, c_ptr);
1265
   function To_PTR is
1266
      new Ada.Unchecked_Conversion (const_vector_unsigned_short_ptr, c_ptr);
1267
   function To_PTR is
1268
      new Ada.Unchecked_Conversion (const_vector_bool_int_ptr, c_ptr);
1269
   function To_PTR is
1270
      new Ada.Unchecked_Conversion (const_vector_signed_int_ptr, c_ptr);
1271
   function To_PTR is
1272
      new Ada.Unchecked_Conversion (const_vector_unsigned_int_ptr, c_ptr);
1273
   function To_PTR is
1274
      new Ada.Unchecked_Conversion (const_vector_float_ptr, c_ptr);
1275
   function To_PTR is
1276
      new Ada.Unchecked_Conversion (const_vector_pixel_ptr, c_ptr);
1277
   function To_PTR is
1278
      new Ada.Unchecked_Conversion (c_ptr, c_ptr);
1279
   function To_PTR is
1280
      new Ada.Unchecked_Conversion (signed_char_ptr, c_ptr);
1281
   function To_PTR is
1282
      new Ada.Unchecked_Conversion (unsigned_char_ptr, c_ptr);
1283
   function To_PTR is
1284
      new Ada.Unchecked_Conversion (short_ptr, c_ptr);
1285
   function To_PTR is
1286
      new Ada.Unchecked_Conversion (signed_short_ptr, c_ptr);
1287
   function To_PTR is
1288
      new Ada.Unchecked_Conversion (unsigned_short_ptr, c_ptr);
1289
   function To_PTR is
1290
      new Ada.Unchecked_Conversion (int_ptr, c_ptr);
1291
   function To_PTR is
1292
      new Ada.Unchecked_Conversion (signed_int_ptr, c_ptr);
1293
   function To_PTR is
1294
      new Ada.Unchecked_Conversion (unsigned_int_ptr, c_ptr);
1295
   function To_PTR is
1296
      new Ada.Unchecked_Conversion (long_ptr, c_ptr);
1297
   function To_PTR is
1298
      new Ada.Unchecked_Conversion (signed_long_ptr, c_ptr);
1299
   function To_PTR is
1300
      new Ada.Unchecked_Conversion (unsigned_long_ptr, c_ptr);
1301
   function To_PTR is
1302
      new Ada.Unchecked_Conversion (float_ptr, c_ptr);
1303
   function To_PTR is
1304
      new Ada.Unchecked_Conversion (const_signed_char_ptr, c_ptr);
1305
   function To_PTR is
1306
      new Ada.Unchecked_Conversion (const_unsigned_char_ptr, c_ptr);
1307
   function To_PTR is
1308
      new Ada.Unchecked_Conversion (const_short_ptr, c_ptr);
1309
   function To_PTR is
1310
      new Ada.Unchecked_Conversion (const_signed_short_ptr, c_ptr);
1311
   function To_PTR is
1312
      new Ada.Unchecked_Conversion (const_unsigned_short_ptr, c_ptr);
1313
   function To_PTR is
1314
      new Ada.Unchecked_Conversion (const_int_ptr, c_ptr);
1315
   function To_PTR is
1316
      new Ada.Unchecked_Conversion (const_signed_int_ptr, c_ptr);
1317
   function To_PTR is
1318
      new Ada.Unchecked_Conversion (const_unsigned_int_ptr, c_ptr);
1319
   function To_PTR is
1320
      new Ada.Unchecked_Conversion (const_long_ptr, c_ptr);
1321
   function To_PTR is
1322
      new Ada.Unchecked_Conversion (const_signed_long_ptr, c_ptr);
1323
   function To_PTR is
1324
      new Ada.Unchecked_Conversion (const_unsigned_long_ptr, c_ptr);
1325
   function To_PTR is
1326
      new Ada.Unchecked_Conversion (const_float_ptr, c_ptr);
1327
   function To_PTR is
1328
      new Ada.Unchecked_Conversion (constv_char_ptr, c_ptr);
1329
   function To_PTR is
1330
      new Ada.Unchecked_Conversion (constv_signed_char_ptr, c_ptr);
1331
   function To_PTR is
1332
      new Ada.Unchecked_Conversion (constv_unsigned_char_ptr, c_ptr);
1333
   function To_PTR is
1334
      new Ada.Unchecked_Conversion (constv_short_ptr, c_ptr);
1335
   function To_PTR is
1336
      new Ada.Unchecked_Conversion (constv_signed_short_ptr, c_ptr);
1337
   function To_PTR is
1338
      new Ada.Unchecked_Conversion (constv_unsigned_short_ptr, c_ptr);
1339
   function To_PTR is
1340
      new Ada.Unchecked_Conversion (constv_int_ptr, c_ptr);
1341
   function To_PTR is
1342
      new Ada.Unchecked_Conversion (constv_signed_int_ptr, c_ptr);
1343
   function To_PTR is
1344
      new Ada.Unchecked_Conversion (constv_unsigned_int_ptr, c_ptr);
1345
   function To_PTR is
1346
      new Ada.Unchecked_Conversion (constv_long_ptr, c_ptr);
1347
   function To_PTR is
1348
      new Ada.Unchecked_Conversion (constv_signed_long_ptr, c_ptr);
1349
   function To_PTR is
1350
      new Ada.Unchecked_Conversion (constv_unsigned_long_ptr, c_ptr);
1351
   function To_PTR is
1352
      new Ada.Unchecked_Conversion (constv_float_ptr, c_ptr);
1353
 
1354
end GNAT.Altivec.Low_Level_Interface;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.