tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

vis_proto.h (9353B)


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