security/nss/lib/freebl/mpi/vis_proto.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 4
michael@0 5 /*
michael@0 6 * Prototypes for the inline templates in vis.il
michael@0 7 */
michael@0 8
michael@0 9 #ifndef VIS_PROTO_H
michael@0 10 #define VIS_PROTO_H
michael@0 11
michael@0 12 #pragma ident "@(#)vis_proto.h 1.3 97/03/30 SMI"
michael@0 13
michael@0 14 #ifdef __cplusplus
michael@0 15 extern "C" {
michael@0 16 #endif /* __cplusplus */
michael@0 17
michael@0 18 /* Pure edge handling instructions */
michael@0 19 int vis_edge8(void * /*frs1*/, void * /*frs2*/);
michael@0 20 int vis_edge8l(void * /*frs1*/, void * /*frs2*/);
michael@0 21 int vis_edge16(void * /*frs1*/, void * /*frs2*/);
michael@0 22 int vis_edge16l(void * /*frs1*/, void * /*frs2*/);
michael@0 23 int vis_edge32(void * /*frs1*/, void * /*frs2*/);
michael@0 24 int vis_edge32l(void * /*frs1*/, void * /*frs2*/);
michael@0 25
michael@0 26 /* Edge handling instructions with negative return values if cc set. */
michael@0 27 int vis_edge8cc(void * /*frs1*/, void * /*frs2*/);
michael@0 28 int vis_edge8lcc(void * /*frs1*/, void * /*frs2*/);
michael@0 29 int vis_edge16cc(void * /*frs1*/, void * /*frs2*/);
michael@0 30 int vis_edge16lcc(void * /*frs1*/, void * /*frs2*/);
michael@0 31 int vis_edge32cc(void * /*frs1*/, void * /*frs2*/);
michael@0 32 int vis_edge32lcc(void * /*frs1*/, void * /*frs2*/);
michael@0 33
michael@0 34 /* Alignment instructions. */
michael@0 35 void *vis_alignaddr(void * /*rs1*/, int /*rs2*/);
michael@0 36 void *vis_alignaddrl(void * /*rs1*/, int /*rs2*/);
michael@0 37 double vis_faligndata(double /*frs1*/, double /*frs2*/);
michael@0 38
michael@0 39 /* Partitioned comparison instructions. */
michael@0 40 int vis_fcmple16(double /*frs1*/, double /*frs2*/);
michael@0 41 int vis_fcmpne16(double /*frs1*/, double /*frs2*/);
michael@0 42 int vis_fcmple32(double /*frs1*/, double /*frs2*/);
michael@0 43 int vis_fcmpne32(double /*frs1*/, double /*frs2*/);
michael@0 44 int vis_fcmpgt16(double /*frs1*/, double /*frs2*/);
michael@0 45 int vis_fcmpeq16(double /*frs1*/, double /*frs2*/);
michael@0 46 int vis_fcmpgt32(double /*frs1*/, double /*frs2*/);
michael@0 47 int vis_fcmpeq32(double /*frs1*/, double /*frs2*/);
michael@0 48
michael@0 49 /* Partitioned multiplication. */
michael@0 50 #if 0
michael@0 51 double vis_fmul8x16(float /*frs1*/, double /*frs2*/);
michael@0 52 #endif
michael@0 53 double vis_fmul8x16_dummy(float /*frs1*/, int /*dummy*/, double /*frs2*/);
michael@0 54 double vis_fmul8x16au(float /*frs1*/, float /*frs2*/);
michael@0 55 double vis_fmul8x16al(float /*frs1*/, float /*frs2*/);
michael@0 56 double vis_fmul8sux16(double /*frs1*/, double /*frs2*/);
michael@0 57 double vis_fmul8ulx16(double /*frs1*/, double /*frs2*/);
michael@0 58 double vis_fmuld8ulx16(float /*frs1*/, float /*frs2*/);
michael@0 59 double vis_fmuld8sux16(float /*frs1*/, float /*frs2*/);
michael@0 60
michael@0 61 /* Partitioned addition & subtraction. */
michael@0 62 double vis_fpadd16(double /*frs1*/, double /*frs2*/);
michael@0 63 float vis_fpadd16s(float /*frs1*/, float /*frs2*/);
michael@0 64 double vis_fpadd32(double /*frs1*/, double /*frs2*/);
michael@0 65 float vis_fpadd32s(float /*frs1*/, float /*frs2*/);
michael@0 66 double vis_fpsub16(double /*frs1*/, double /*frs2*/);
michael@0 67 float vis_fpsub16s(float /*frs1*/, float /*frs2*/);
michael@0 68 double vis_fpsub32(double /*frs1*/, double /*frs2*/);
michael@0 69 float vis_fpsub32s(float /*frs1*/, float /*frs2*/);
michael@0 70
michael@0 71 /* Pixel packing & clamping. */
michael@0 72 float vis_fpack16(double /*frs2*/);
michael@0 73 double vis_fpack32(double /*frs1*/, double /*frs2*/);
michael@0 74 float vis_fpackfix(double /*frs2*/);
michael@0 75
michael@0 76 /* Combined pack ops. */
michael@0 77 double vis_fpack16_pair(double /*frs2*/, double /*frs2*/);
michael@0 78 double vis_fpackfix_pair(double /*frs2*/, double /*frs2*/);
michael@0 79 void vis_st2_fpack16(double, double, double *);
michael@0 80 void vis_std_fpack16(double, double, double *);
michael@0 81 void vis_st2_fpackfix(double, double, double *);
michael@0 82
michael@0 83 double vis_fpack16_to_hi(double /*frs1*/, double /*frs2*/);
michael@0 84 double vis_fpack16_to_lo(double /*frs1*/, double /*frs2*/);
michael@0 85
michael@0 86 /* Motion estimation. */
michael@0 87 double vis_pdist(double /*frs1*/, double /*frs2*/, double /*frd*/);
michael@0 88
michael@0 89 /* Channel merging. */
michael@0 90 double vis_fpmerge(float /*frs1*/, float /*frs2*/);
michael@0 91
michael@0 92 /* Pixel expansion. */
michael@0 93 double vis_fexpand(float /*frs2*/);
michael@0 94 double vis_fexpand_hi(double /*frs2*/);
michael@0 95 double vis_fexpand_lo(double /*frs2*/);
michael@0 96
michael@0 97 /* Bitwise logical operators. */
michael@0 98 double vis_fnor(double /*frs1*/, double /*frs2*/);
michael@0 99 float vis_fnors(float /*frs1*/, float /*frs2*/);
michael@0 100 double vis_fandnot(double /*frs1*/, double /*frs2*/);
michael@0 101 float vis_fandnots(float /*frs1*/, float /*frs2*/);
michael@0 102 double vis_fnot(double /*frs1*/);
michael@0 103 float vis_fnots(float /*frs1*/);
michael@0 104 double vis_fxor(double /*frs1*/, double /*frs2*/);
michael@0 105 float vis_fxors(float /*frs1*/, float /*frs2*/);
michael@0 106 double vis_fnand(double /*frs1*/, double /*frs2*/);
michael@0 107 float vis_fnands(float /*frs1*/, float /*frs2*/);
michael@0 108 double vis_fand(double /*frs1*/, double /*frs2*/);
michael@0 109 float vis_fands(float /*frs1*/, float /*frs2*/);
michael@0 110 double vis_fxnor(double /*frs1*/, double /*frs2*/);
michael@0 111 float vis_fxnors(float /*frs1*/, float /*frs2*/);
michael@0 112 double vis_fsrc(double /*frs1*/);
michael@0 113 float vis_fsrcs(float /*frs1*/);
michael@0 114 double vis_fornot(double /*frs1*/, double /*frs2*/);
michael@0 115 float vis_fornots(float /*frs1*/, float /*frs2*/);
michael@0 116 double vis_for(double /*frs1*/, double /*frs2*/);
michael@0 117 float vis_fors(float /*frs1*/, float /*frs2*/);
michael@0 118 double vis_fzero(void);
michael@0 119 float vis_fzeros(void);
michael@0 120 double vis_fone(void);
michael@0 121 float vis_fones(void);
michael@0 122
michael@0 123 /* Partial stores. */
michael@0 124 void vis_stdfa_ASI_PST8P(double /*frd*/, void * /*rs1*/, int /*rmask*/);
michael@0 125 void vis_stdfa_ASI_PST8PL(double /*frd*/, void * /*rs1*/, int /*rmask*/);
michael@0 126 void vis_stdfa_ASI_PST8P_int_pair(void * /*rs1*/, void * /*rs2*/,
michael@0 127 void * /*rs3*/, int /*rmask*/);
michael@0 128 void vis_stdfa_ASI_PST8S(double /*frd*/, void * /*rs1*/, int /*rmask*/);
michael@0 129 void vis_stdfa_ASI_PST16P(double /*frd*/, void * /*rs1*/, int /*rmask*/);
michael@0 130 void vis_stdfa_ASI_PST16S(double /*frd*/, void * /*rs1*/, int /*rmask*/);
michael@0 131 void vis_stdfa_ASI_PST32P(double /*frd*/, void * /*rs1*/, int /*rmask*/);
michael@0 132 void vis_stdfa_ASI_PST32S(double /*frd*/, void * /*rs1*/, int /*rmask*/);
michael@0 133
michael@0 134 /* Byte & short stores. */
michael@0 135 void vis_stdfa_ASI_FL8P(double /*frd*/, void * /*rs1*/);
michael@0 136 void vis_stdfa_ASI_FL8P_index(double /*frd*/, void * /*rs1*/, long /*index*/);
michael@0 137 void vis_stdfa_ASI_FL8S(double /*frd*/, void * /*rs1*/);
michael@0 138 void vis_stdfa_ASI_FL16P(double /*frd*/, void * /*rs1*/);
michael@0 139 void vis_stdfa_ASI_FL16P_index(double /*frd*/, void * /*rs1*/, long /*index*/);
michael@0 140 void vis_stdfa_ASI_FL16S(double /*frd*/, void * /*rs1*/);
michael@0 141 void vis_stdfa_ASI_FL8PL(double /*frd*/, void * /*rs1*/);
michael@0 142 void vis_stdfa_ASI_FL8SL(double /*frd*/, void * /*rs1*/);
michael@0 143 void vis_stdfa_ASI_FL16PL(double /*frd*/, void * /*rs1*/);
michael@0 144 void vis_stdfa_ASI_FL16SL(double /*frd*/, void * /*rs1*/);
michael@0 145
michael@0 146 /* Byte & short loads. */
michael@0 147 double vis_lddfa_ASI_FL8P(void * /*rs1*/);
michael@0 148 double vis_lddfa_ASI_FL8P_index(void * /*rs1*/, long /*index*/);
michael@0 149 double vis_lddfa_ASI_FL8P_hi(void * /*rs1*/, unsigned int /*index*/);
michael@0 150 double vis_lddfa_ASI_FL8P_lo(void * /*rs1*/, unsigned int /*index*/);
michael@0 151 double vis_lddfa_ASI_FL8S(void * /*rs1*/);
michael@0 152 double vis_lddfa_ASI_FL16P(void * /*rs1*/);
michael@0 153 double vis_lddfa_ASI_FL16P_index(void * /*rs1*/, long /*index*/);
michael@0 154 double vis_lddfa_ASI_FL16S(void * /*rs1*/);
michael@0 155 double vis_lddfa_ASI_FL8PL(void * /*rs1*/);
michael@0 156 double vis_lddfa_ASI_FL8SL(void * /*rs1*/);
michael@0 157 double vis_lddfa_ASI_FL16PL(void * /*rs1*/);
michael@0 158 double vis_lddfa_ASI_FL16SL(void * /*rs1*/);
michael@0 159
michael@0 160 /* Direct write to GSR, read from GSR */
michael@0 161 void vis_write_gsr(unsigned int /*GSR*/);
michael@0 162 unsigned int vis_read_gsr(void);
michael@0 163
michael@0 164 /* Voxel texture mapping. */
michael@0 165 #if !defined(_NO_LONGLONG)
michael@0 166 unsigned long vis_array8(unsigned long long /*rs1*/, int /*rs2*/);
michael@0 167 unsigned long vis_array16(unsigned long long /*rs1*/, int /*rs2*/);
michael@0 168 unsigned long vis_array32(unsigned long long /*rs1*/, int /*rs2*/);
michael@0 169 #endif /* !defined(_NO_LONGLONG) */
michael@0 170
michael@0 171 /* Register aliasing and type casts. */
michael@0 172 float vis_read_hi(double /*frs1*/);
michael@0 173 float vis_read_lo(double /*frs1*/);
michael@0 174 double vis_write_hi(double /*frs1*/, float /*frs2*/);
michael@0 175 double vis_write_lo(double /*frs1*/, float /*frs2*/);
michael@0 176 double vis_freg_pair(float /*frs1*/, float /*frs2*/);
michael@0 177 float vis_to_float(unsigned int /*value*/);
michael@0 178 double vis_to_double(unsigned int /*value1*/, unsigned int /*value2*/);
michael@0 179 double vis_to_double_dup(unsigned int /*value*/);
michael@0 180 #if !defined(_NO_LONGLONG)
michael@0 181 double vis_ll_to_double(unsigned long long /*value*/);
michael@0 182 #endif /* !defined(_NO_LONGLONG) */
michael@0 183
michael@0 184 /* Miscellany (no inlines) */
michael@0 185 void vis_error(char * /*fmt*/, int /*a0*/);
michael@0 186 void vis_sim_init(void);
michael@0 187
michael@0 188 /* For better performance */
michael@0 189 #define vis_fmul8x16(farg,darg) vis_fmul8x16_dummy((farg),0,(darg))
michael@0 190
michael@0 191 /* Nicknames for explicit ASI loads and stores. */
michael@0 192 #define vis_st_u8 vis_stdfa_ASI_FL8P
michael@0 193 #define vis_st_u8_i vis_stdfa_ASI_FL8P_index
michael@0 194 #define vis_st_u8_le vis_stdfa_ASI_FL8PL
michael@0 195 #define vis_st_u16 vis_stdfa_ASI_FL16P
michael@0 196 #define vis_st_u16_i vis_stdfa_ASI_FL16P_index
michael@0 197 #define vis_st_u16_le vis_stdfa_ASI_FL16PL
michael@0 198
michael@0 199 #define vis_ld_u8 vis_lddfa_ASI_FL8P
michael@0 200 #define vis_ld_u8_i vis_lddfa_ASI_FL8P_index
michael@0 201 #define vis_ld_u8_le vis_lddfa_ASI_FL8PL
michael@0 202 #define vis_ld_u16 vis_lddfa_ASI_FL16P
michael@0 203 #define vis_ld_u16_i vis_lddfa_ASI_FL16P_index
michael@0 204 #define vis_ld_u16_le vis_lddfa_ASI_FL16PL
michael@0 205
michael@0 206 #define vis_pst_8 vis_stdfa_ASI_PST8P
michael@0 207 #define vis_pst_16 vis_stdfa_ASI_PST16P
michael@0 208 #define vis_pst_32 vis_stdfa_ASI_PST32P
michael@0 209
michael@0 210 #define vis_st_u8s vis_stdfa_ASI_FL8S
michael@0 211 #define vis_st_u8s_le vis_stdfa_ASI_FL8SL
michael@0 212 #define vis_st_u16s vis_stdfa_ASI_FL16S
michael@0 213 #define vis_st_u16s_le vis_stdfa_ASI_FL16SL
michael@0 214
michael@0 215 #define vis_ld_u8s vis_lddfa_ASI_FL8S
michael@0 216 #define vis_ld_u8s_le vis_lddfa_ASI_FL8SL
michael@0 217 #define vis_ld_u16s vis_lddfa_ASI_FL16S
michael@0 218 #define vis_ld_u16s_le vis_lddfa_ASI_FL16SL
michael@0 219
michael@0 220 #define vis_pst_8s vis_stdfa_ASI_PST8S
michael@0 221 #define vis_pst_16s vis_stdfa_ASI_PST16S
michael@0 222 #define vis_pst_32s vis_stdfa_ASI_PST32S
michael@0 223
michael@0 224 /* "<" and ">=" may be implemented in terms of ">" and "<=". */
michael@0 225 #define vis_fcmplt16(a,b) vis_fcmpgt16((b),(a))
michael@0 226 #define vis_fcmplt32(a,b) vis_fcmpgt32((b),(a))
michael@0 227 #define vis_fcmpge16(a,b) vis_fcmple16((b),(a))
michael@0 228 #define vis_fcmpge32(a,b) vis_fcmple32((b),(a))
michael@0 229
michael@0 230 #ifdef __cplusplus
michael@0 231 } // End of extern "C"
michael@0 232 #endif /* __cplusplus */
michael@0 233
michael@0 234 #endif /* VIS_PROTO_H */

mercurial