doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros
Simd_Generic.cpp File Reference
#include "../precompiled.h"
#include "Simd_Generic.h"

Go to the source code of this file.

Macros

#define UNROLL1(Y)   { int _IX; for (_IX=0;_IX<count;_IX++) {Y(_IX);} }
 
#define UNROLL2(Y)   { int _IX, _NM = count&0xfffffffe; for (_IX=0;_IX<_NM;_IX+=2){Y(_IX+0);Y(_IX+1);} if (_IX < count) {Y(_IX);}}
 
#define UNROLL4(Y)   { int _IX, _NM = count&0xfffffffc; for (_IX=0;_IX<_NM;_IX+=4){Y(_IX+0);Y(_IX+1);Y(_IX+2);Y(_IX+3);}for(;_IX<count;_IX++){Y(_IX);}}
 
#define UNROLL8(Y)   { int _IX, _NM = count&0xfffffff8; for (_IX=0;_IX<_NM;_IX+=8){Y(_IX+0);Y(_IX+1);Y(_IX+2);Y(_IX+3);Y(_IX+4);Y(_IX+5);Y(_IX+6);Y(_IX+7);} _NM = count&0xfffffffe; for(;_IX<_NM;_IX+=2){Y(_IX); Y(_IX+1);} if (_IX < count) {Y(_IX);} }
 
#define NODEFAULT
 
#define OPER(X)   dst[(X)] = src[(X)] + constant;
 
#define OPER(X)   dst[(X)] = src0[(X)] + src1[(X)];
 
#define OPER(X)   dst[(X)] = c - src[(X)];
 
#define OPER(X)   dst[(X)] = src0[(X)] - src1[(X)];
 
#define OPER(X)   (dst[(X)] = (c * src0[(X)]))
 
#define OPER(X)   (dst[(X)] = src0[(X)] * src1[(X)])
 
#define OPER(X)   (dst[(X)] = (c / divisor[(X)]))
 
#define OPER(X)   (dst[(X)] = src0[(X)] / src1[(X)])
 
#define OPER(X)   (dst[(X)] += c * src[(X)])
 
#define OPER(X)   (dst[(X)] += src0[(X)] * src1[(X)])
 
#define OPER(X)   (dst[(X)] -= c * src[(X)])
 
#define OPER(X)   (dst[(X)] -= src0[(X)] * src1[(X)])
 
#define OPER(X)   dst[(X)] = constant * src[(X)];
 
#define OPER(X)   dst[(X)] = constant * src[(X)].Normal() + src[(X)][3];
 
#define OPER(X)   dst[(X)] = constant * src[(X)].xyz;
 
#define OPER(X)   dst[(X)] = constant.Normal() * src[(X)] + constant[3];
 
#define OPER(X)   dst[(X)] = constant.Normal() * src[(X)].Normal() + constant[3] * src[(X)][3];
 
#define OPER(X)   dst[(X)] = constant.Normal() * src[(X)].xyz + constant[3];
 
#define OPER(X)   dst[(X)] = src0[(X)] * src1[(X)];
 
#define OPER(X)   dst[(X)] = src0[(X)] > constant;
 
#define OPER(X)   dst[(X)] |= ( src0[(X)] > constant ) << bitNum;
 
#define OPER(X)   dst[(X)] = src0[(X)] >= constant;
 
#define OPER(X)   dst[(X)] |= ( src0[(X)] >= constant ) << bitNum;
 
#define OPER(X)   dst[(X)] = src0[(X)] < constant;
 
#define OPER(X)   dst[(X)] |= ( src0[(X)] < constant ) << bitNum;
 
#define OPER(X)   dst[(X)] = src0[(X)] <= constant;
 
#define OPER(X)   dst[(X)] |= ( src0[(X)] <= constant ) << bitNum;
 
#define OPER(X)   if ( src[(X)] < min ) {min = src[(X)];} if ( src[(X)] > max ) {max = src[(X)];}
 
#define OPER(X)   const idVec2 &v = src[(X)]; if ( v[0] < min[0] ) { min[0] = v[0]; } if ( v[0] > max[0] ) { max[0] = v[0]; } if ( v[1] < min[1] ) { min[1] = v[1]; } if ( v[1] > max[1] ) { max[1] = v[1]; }
 
#define OPER(X)   const idVec3 &v = src[(X)]; if ( v[0] < min[0] ) { min[0] = v[0]; } if ( v[0] > max[0] ) { max[0] = v[0]; } if ( v[1] < min[1] ) { min[1] = v[1]; } if ( v[1] > max[1] ) { max[1] = v[1]; } if ( v[2] < min[2] ) { min[2] = v[2]; } if ( v[2] > max[2] ) { max[2] = v[2]; }
 
#define OPER(X)   const idVec3 &v = src[(X)].xyz; if ( v[0] < min[0] ) { min[0] = v[0]; } if ( v[0] > max[0] ) { max[0] = v[0]; } if ( v[1] < min[1] ) { min[1] = v[1]; } if ( v[1] > max[1] ) { max[1] = v[1]; } if ( v[2] < min[2] ) { min[2] = v[2]; } if ( v[2] > max[2] ) { max[2] = v[2]; }
 
#define OPER(X)   const idVec3 &v = src[indexes[(X)]].xyz; if ( v[0] < min[0] ) { min[0] = v[0]; } if ( v[0] > max[0] ) { max[0] = v[0]; } if ( v[1] < min[1] ) { min[1] = v[1]; } if ( v[1] > max[1] ) { max[1] = v[1]; } if ( v[2] < min[2] ) { min[2] = v[2]; } if ( v[2] > max[2] ) { max[2] = v[2]; }
 
#define OPER(X)   dst[(X)] = src[(X)] < min ? min : src[(X)] > max ? max : src[(X)];
 
#define OPER(X)   dst[(X)] = src[(X)] < min ? min : src[(X)];
 
#define OPER(X)   dst[(X)] = src[(X)] > max ? max : src[(X)];
 
#define OPER(X)   ptr[(X)] ^= ( 1 << 31 )
 
#define OPER(X)   dst[(X)] = src[(X)]
 
#define OPER(X)   dst[(X)] = src1[(X)] + src2[(X)]
 
#define OPER(X)   dst[(X)] = src1[(X)] - src2[(X)]
 
#define OPER(X)   dst[(X)] = src1[(X)] * constant
 
#define OPER(X)   dst[(X)] += src[(X)]
 
#define OPER(X)   dst[(X)] -= src[(X)]
 
#define OPER(X)   dst[(X)] *= constant
 
#define NSKIP(n, s)   ((n<<3)|(s&7))
 
#define DERIVE_UNSMOOTHED_BITANGENT
 

Macro Definition Documentation

#define DERIVE_UNSMOOTHED_BITANGENT

Definition at line 2612 of file Simd_Generic.cpp.

#define NODEFAULT

Definition at line 51 of file Simd_Generic.cpp.

#define NSKIP (   n,
  s 
)    ((n<<3)|(s&7))
#define OPER (   X)    dst[(X)] = src[(X)] + constant;
#define OPER (   X)    dst[(X)] = src0[(X)] + src1[(X)];
#define OPER (   X)    dst[(X)] = c - src[(X)];
#define OPER (   X)    dst[(X)] = src0[(X)] - src1[(X)];
#define OPER (   X)    (dst[(X)] = (c * src0[(X)]))
#define OPER (   X)    (dst[(X)] = src0[(X)] * src1[(X)])
#define OPER (   X)    (dst[(X)] = (c / divisor[(X)]))
#define OPER (   X)    (dst[(X)] = src0[(X)] / src1[(X)])
#define OPER (   X)    (dst[(X)] += c * src[(X)])
#define OPER (   X)    (dst[(X)] += src0[(X)] * src1[(X)])
#define OPER (   X)    (dst[(X)] -= c * src[(X)])
#define OPER (   X)    (dst[(X)] -= src0[(X)] * src1[(X)])
#define OPER (   X)    dst[(X)] = constant * src[(X)];
#define OPER (   X)    dst[(X)] = constant * src[(X)].Normal() + src[(X)][3];
#define OPER (   X)    dst[(X)] = constant * src[(X)].xyz;
#define OPER (   X)    dst[(X)] = constant.Normal() * src[(X)] + constant[3];
#define OPER (   X)    dst[(X)] = constant.Normal() * src[(X)].Normal() + constant[3] * src[(X)][3];
#define OPER (   X)    dst[(X)] = constant.Normal() * src[(X)].xyz + constant[3];
#define OPER (   X)    dst[(X)] = src0[(X)] * src1[(X)];
#define OPER (   X)    dst[(X)] = src0[(X)] > constant;
#define OPER (   X)    dst[(X)] |= ( src0[(X)] > constant ) << bitNum;
#define OPER (   X)    dst[(X)] = src0[(X)] >= constant;
#define OPER (   X)    dst[(X)] |= ( src0[(X)] >= constant ) << bitNum;
#define OPER (   X)    dst[(X)] = src0[(X)] < constant;
#define OPER (   X)    dst[(X)] |= ( src0[(X)] < constant ) << bitNum;
#define OPER (   X)    dst[(X)] = src0[(X)] <= constant;
#define OPER (   X)    dst[(X)] |= ( src0[(X)] <= constant ) << bitNum;
#define OPER (   X)    if ( src[(X)] < min ) {min = src[(X)];} if ( src[(X)] > max ) {max = src[(X)];}
#define OPER (   X)    const idVec2 &v = src[(X)]; if ( v[0] < min[0] ) { min[0] = v[0]; } if ( v[0] > max[0] ) { max[0] = v[0]; } if ( v[1] < min[1] ) { min[1] = v[1]; } if ( v[1] > max[1] ) { max[1] = v[1]; }
#define OPER (   X)    const idVec3 &v = src[(X)]; if ( v[0] < min[0] ) { min[0] = v[0]; } if ( v[0] > max[0] ) { max[0] = v[0]; } if ( v[1] < min[1] ) { min[1] = v[1]; } if ( v[1] > max[1] ) { max[1] = v[1]; } if ( v[2] < min[2] ) { min[2] = v[2]; } if ( v[2] > max[2] ) { max[2] = v[2]; }
#define OPER (   X)    const idVec3 &v = src[(X)].xyz; if ( v[0] < min[0] ) { min[0] = v[0]; } if ( v[0] > max[0] ) { max[0] = v[0]; } if ( v[1] < min[1] ) { min[1] = v[1]; } if ( v[1] > max[1] ) { max[1] = v[1]; } if ( v[2] < min[2] ) { min[2] = v[2]; } if ( v[2] > max[2] ) { max[2] = v[2]; }
#define OPER (   X)    const idVec3 &v = src[indexes[(X)]].xyz; if ( v[0] < min[0] ) { min[0] = v[0]; } if ( v[0] > max[0] ) { max[0] = v[0]; } if ( v[1] < min[1] ) { min[1] = v[1]; } if ( v[1] > max[1] ) { max[1] = v[1]; } if ( v[2] < min[2] ) { min[2] = v[2]; } if ( v[2] > max[2] ) { max[2] = v[2]; }
#define OPER (   X)    dst[(X)] = src[(X)] < min ? min : src[(X)] > max ? max : src[(X)];
#define OPER (   X)    dst[(X)] = src[(X)] < min ? min : src[(X)];
#define OPER (   X)    dst[(X)] = src[(X)] > max ? max : src[(X)];
#define OPER (   X)    ptr[(X)] ^= ( 1 << 31 )
#define OPER (   X)    dst[(X)] = src[(X)]
#define OPER (   X)    dst[(X)] = src1[(X)] + src2[(X)]
#define OPER (   X)    dst[(X)] = src1[(X)] - src2[(X)]
#define OPER (   X)    dst[(X)] = src1[(X)] * constant
#define OPER (   X)    dst[(X)] += src[(X)]
#define OPER (   X)    dst[(X)] -= src[(X)]
#define OPER (   X)    dst[(X)] *= constant
#define UNROLL1 (   Y)    { int _IX; for (_IX=0;_IX<count;_IX++) {Y(_IX);} }

Definition at line 41 of file Simd_Generic.cpp.

#define UNROLL2 (   Y)    { int _IX, _NM = count&0xfffffffe; for (_IX=0;_IX<_NM;_IX+=2){Y(_IX+0);Y(_IX+1);} if (_IX < count) {Y(_IX);}}

Definition at line 42 of file Simd_Generic.cpp.

#define UNROLL4 (   Y)    { int _IX, _NM = count&0xfffffffc; for (_IX=0;_IX<_NM;_IX+=4){Y(_IX+0);Y(_IX+1);Y(_IX+2);Y(_IX+3);}for(;_IX<count;_IX++){Y(_IX);}}

Definition at line 43 of file Simd_Generic.cpp.

#define UNROLL8 (   Y)    { int _IX, _NM = count&0xfffffff8; for (_IX=0;_IX<_NM;_IX+=8){Y(_IX+0);Y(_IX+1);Y(_IX+2);Y(_IX+3);Y(_IX+4);Y(_IX+5);Y(_IX+6);Y(_IX+7);} _NM = count&0xfffffffe; for(;_IX<_NM;_IX+=2){Y(_IX); Y(_IX+1);} if (_IX < count) {Y(_IX);} }

Definition at line 44 of file Simd_Generic.cpp.