Wed, 31 Dec 2014 06:09:35 +0100
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 */ |