Lines Matching refs:Shader
412 sw::PixelShader *Shader::getPixelShader() const in getPixelShader()
417 sw::VertexShader *Shader::getVertexShader() const in getVertexShader()
502 …OutputASM::OutputASM(TParseContext &context, Shader *shaderObject) : TIntermTraverser(true, true, … in OutputASM()
532 Instruction *callMain = emit(sw::Shader::OPCODE_CALL); in output()
533 callMain->dst.type = sw::Shader::PARAMETER_LABEL; in output()
536 emit(sw::Shader::OPCODE_RET); in output()
555 sw::Shader::Opcode OutputASM::getOpcode(sw::Shader::Opcode op, TIntermTyped *in) const in getOpcode()
561 case sw::Shader::OPCODE_NEG: in getOpcode()
566 return sw::Shader::OPCODE_INEG; in getOpcode()
571 case sw::Shader::OPCODE_ABS: in getOpcode()
575 return sw::Shader::OPCODE_IABS; in getOpcode()
580 case sw::Shader::OPCODE_SGN: in getOpcode()
584 return sw::Shader::OPCODE_ISGN; in getOpcode()
589 case sw::Shader::OPCODE_ADD: in getOpcode()
594 return sw::Shader::OPCODE_IADD; in getOpcode()
599 case sw::Shader::OPCODE_SUB: in getOpcode()
604 return sw::Shader::OPCODE_ISUB; in getOpcode()
609 case sw::Shader::OPCODE_MUL: in getOpcode()
614 return sw::Shader::OPCODE_IMUL; in getOpcode()
619 case sw::Shader::OPCODE_DIV: in getOpcode()
623 return sw::Shader::OPCODE_IDIV; in getOpcode()
625 return sw::Shader::OPCODE_UDIV; in getOpcode()
630 case sw::Shader::OPCODE_IMOD: in getOpcode()
631 return baseType == EbtUInt ? sw::Shader::OPCODE_UMOD : op; in getOpcode()
632 case sw::Shader::OPCODE_ISHR: in getOpcode()
633 return baseType == EbtUInt ? sw::Shader::OPCODE_USHR : op; in getOpcode()
634 case sw::Shader::OPCODE_MIN: in getOpcode()
638 return sw::Shader::OPCODE_IMIN; in getOpcode()
640 return sw::Shader::OPCODE_UMIN; in getOpcode()
645 case sw::Shader::OPCODE_MAX: in getOpcode()
649 return sw::Shader::OPCODE_IMAX; in getOpcode()
651 return sw::Shader::OPCODE_UMAX; in getOpcode()
729 emit(sw::Shader::OPCODE_DEF, left, i, right, i); in visitBinary()
743 emit(sw::Shader::OPCODE_MUL, result, i, left, i, right); in visitBinary()
761 Instruction *dot = emit(sw::Shader::OPCODE_DP(size), result, 0, left, 0, right, i); in visitBinary()
776 Instruction *mul = emit(sw::Shader::OPCODE_MUL, result, i, left, 0, right, i); in visitBinary()
781 Instruction *mad = emit(sw::Shader::OPCODE_MAD, result, i, left, j, right, i, result, i); in visitBinary()
822 Instruction *mov = emit(sw::Shader::OPCODE_MOV, result, left); in visitBinary()
826 …case EOpAddAssign: if(visit == PostVisit) emitAssign(getOpcode(sw::Shader::OPCODE_ADD, result), re… in visitBinary()
827 …case EOpAdd: if(visit == PostVisit) emitBinary(getOpcode(sw::Shader::OPCODE_ADD, result), re… in visitBinary()
828 …case EOpSubAssign: if(visit == PostVisit) emitAssign(getOpcode(sw::Shader::OPCODE_SUB, result), re… in visitBinary()
829 …case EOpSub: if(visit == PostVisit) emitBinary(getOpcode(sw::Shader::OPCODE_SUB, result), re… in visitBinary()
830 …case EOpMulAssign: if(visit == PostVisit) emitAssign(getOpcode(sw::Shader::OPCODE_MUL, result), re… in visitBinary()
831 …case EOpMul: if(visit == PostVisit) emitBinary(getOpcode(sw::Shader::OPCODE_MUL, result), re… in visitBinary()
832 …case EOpDivAssign: if(visit == PostVisit) emitAssign(getOpcode(sw::Shader::OPCODE_DIV, result), re… in visitBinary()
833 …case EOpDiv: if(visit == PostVisit) emitBinary(getOpcode(sw::Shader::OPCODE_DIV, result), re… in visitBinary()
834 …case EOpIModAssign: if(visit == PostVisit) emitAssign(getOpcode(sw::Shader::OPCODE_IMOD, … in visitBinary()
835 …case EOpIMod: if(visit == PostVisit) emitBinary(getOpcode(sw::Shader::OPCODE_IMOD, … in visitBinary()
836 …case EOpBitShiftLeftAssign: if(visit == PostVisit) emitAssign(sw::Shader::OPCODE_SHL, result, lef… in visitBinary()
837 …case EOpBitShiftLeft: if(visit == PostVisit) emitBinary(sw::Shader::OPCODE_SHL, result, lef… in visitBinary()
838 …case EOpBitShiftRightAssign: if(visit == PostVisit) emitAssign(getOpcode(sw::Shader::OPCODE_ISHR, … in visitBinary()
839 …case EOpBitShiftRight: if(visit == PostVisit) emitBinary(getOpcode(sw::Shader::OPCODE_ISHR, … in visitBinary()
840 …case EOpBitwiseAndAssign: if(visit == PostVisit) emitAssign(sw::Shader::OPCODE_AND, result, lef… in visitBinary()
841 …case EOpBitwiseAnd: if(visit == PostVisit) emitBinary(sw::Shader::OPCODE_AND, result, lef… in visitBinary()
842 …case EOpBitwiseXorAssign: if(visit == PostVisit) emitAssign(sw::Shader::OPCODE_XOR, result, lef… in visitBinary()
843 …case EOpBitwiseXor: if(visit == PostVisit) emitBinary(sw::Shader::OPCODE_XOR, result, lef… in visitBinary()
844 …case EOpBitwiseOrAssign: if(visit == PostVisit) emitAssign(sw::Shader::OPCODE_OR, result, left… in visitBinary()
845 …case EOpBitwiseOr: if(visit == PostVisit) emitBinary(sw::Shader::OPCODE_OR, result, left… in visitBinary()
849 emitBinary(sw::Shader::OPCODE_EQ, result, left, right); in visitBinary()
854 emit(sw::Shader::OPCODE_EQ, &equal, 0, left, index, right, index); in visitBinary()
855 emit(sw::Shader::OPCODE_AND, result, result, &equal); in visitBinary()
862 emitBinary(sw::Shader::OPCODE_NE, result, left, right); in visitBinary()
867 emit(sw::Shader::OPCODE_NE, ¬Equal, 0, left, index, right, index); in visitBinary()
868 emit(sw::Shader::OPCODE_OR, result, result, ¬Equal); in visitBinary()
872 …case EOpLessThan: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_LT, result, le… in visitBinary()
873 …case EOpGreaterThan: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_GT, result, le… in visitBinary()
874 …case EOpLessThanEqual: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_LE, result, le… in visitBinary()
875 …case EOpGreaterThanEqual: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_GE, result, le… in visitBinary()
876 …case EOpVectorTimesScalarAssign: if(visit == PostVisit) emitAssign(getOpcode(sw::Shader::OPCODE_MU… in visitBinary()
877 …case EOpVectorTimesScalar: if(visit == PostVisit) emit(getOpcode(sw::Shader::OPCODE_MUL, lef… in visitBinary()
885 emit(sw::Shader::OPCODE_MUL, result, i, left, i, right, 0); in visitBinary()
892 emit(sw::Shader::OPCODE_MUL, result, i, left, 0, right, i); in visitBinary()
901 sw::Shader::Opcode dpOpcode = sw::Shader::OPCODE_DP(leftType.getNominalSize()); in visitBinary()
914 Instruction *mul = emit(sw::Shader::OPCODE_MUL, result, left, right); in visitBinary()
920 Instruction *mad = emit(sw::Shader::OPCODE_MAD, result, 0, left, i, right, 0, result); in visitBinary()
933 Instruction *mul = emit(sw::Shader::OPCODE_MUL, result, i, left, 0, right, i); in visitBinary()
938 Instruction *mad = emit(sw::Shader::OPCODE_MAD, result, i, left, j, right, i, result, i); in visitBinary()
949 emit(sw::Shader::OPCODE_OR, result, left, right); in visitBinary()
956 emit(sw::Shader::OPCODE_MOV, result, left); in visitBinary()
957 Instruction *ifnot = emit(sw::Shader::OPCODE_IF, 0, result); in visitBinary()
958 ifnot->src[0].modifier = sw::Shader::MODIFIER_NOT; in visitBinary()
962 emit(sw::Shader::OPCODE_MOV, result, right); in visitBinary()
963 emit(sw::Shader::OPCODE_ENDIF); in visitBinary()
967 …case EOpLogicalXor: if(visit == PostVisit) emit(sw::Shader::OPCODE_XOR, result, left, right… in visitBinary()
973 emit(sw::Shader::OPCODE_AND, result, left, right); in visitBinary()
980 emit(sw::Shader::OPCODE_MOV, result, left); in visitBinary()
981 emit(sw::Shader::OPCODE_IF, 0, result); in visitBinary()
985 emit(sw::Shader::OPCODE_MOV, result, right); in visitBinary()
986 emit(sw::Shader::OPCODE_ENDIF); in visitBinary()
1004 sw::Shader::Opcode op = isMov ? sw::Shader::OPCODE_MOV : sw::Shader::OPCODE_NEG; in emitDeterminant()
1019 …Instruction *det = emit(sw::Shader::OPCODE_DET2, result, outCol, arg, negate ? col1 : col0, arg, n… in emitDeterminant()
1034 …Instruction *det = emit(sw::Shader::OPCODE_DET3, result, outCol, arg, col0, arg, negate ? col2 : c… in emitDeterminant()
1041 … Instruction *det = emit(sw::Shader::OPCODE_DET4, result, outCol, arg, 0, arg, 1, arg, 2, arg, 3); in emitDeterminant()
1086 sw::Shader::Opcode negOpcode = getOpcode(sw::Shader::OPCODE_NEG, arg); in visitUnary()
1093 case EOpVectorLogicalNot: if(visit == PostVisit) emit(sw::Shader::OPCODE_NOT, result, arg); break; in visitUnary()
1094 case EOpLogicalNot: if(visit == PostVisit) emit(sw::Shader::OPCODE_NOT, result, arg); break; in visitUnary()
1095 case EOpBitwiseNot: if(visit == PostVisit) emit(sw::Shader::OPCODE_NOT, result, arg); break; in visitUnary()
1101 sw::Shader::Opcode addOpcode = getOpcode(sw::Shader::OPCODE_ADD, arg); in visitUnary()
1115 sw::Shader::Opcode subOpcode = getOpcode(sw::Shader::OPCODE_SUB, arg); in visitUnary()
1127 sw::Shader::Opcode addOpcode = getOpcode(sw::Shader::OPCODE_ADD, arg); in visitUnary()
1139 sw::Shader::Opcode subOpcode = getOpcode(sw::Shader::OPCODE_SUB, arg); in visitUnary()
1148 …case EOpRadians: if(visit == PostVisit) emit(sw::Shader::OPCODE_MUL, result, arg, &rad); … in visitUnary()
1149 …case EOpDegrees: if(visit == PostVisit) emit(sw::Shader::OPCODE_MUL, result, arg, °); … in visitUnary()
1150 case EOpSin: if(visit == PostVisit) emit(sw::Shader::OPCODE_SIN, result, arg); break; in visitUnary()
1151 case EOpCos: if(visit == PostVisit) emit(sw::Shader::OPCODE_COS, result, arg); break; in visitUnary()
1152 case EOpTan: if(visit == PostVisit) emit(sw::Shader::OPCODE_TAN, result, arg); break; in visitUnary()
1153 …case EOpAsin: if(visit == PostVisit) emit(sw::Shader::OPCODE_ASIN, result, arg); break; in visitUnary()
1154 …case EOpAcos: if(visit == PostVisit) emit(sw::Shader::OPCODE_ACOS, result, arg); break; in visitUnary()
1155 …case EOpAtan: if(visit == PostVisit) emit(sw::Shader::OPCODE_ATAN, result, arg); break; in visitUnary()
1156 …case EOpSinh: if(visit == PostVisit) emit(sw::Shader::OPCODE_SINH, result, arg); break; in visitUnary()
1157 …case EOpCosh: if(visit == PostVisit) emit(sw::Shader::OPCODE_COSH, result, arg); break; in visitUnary()
1158 …case EOpTanh: if(visit == PostVisit) emit(sw::Shader::OPCODE_TANH, result, arg); break; in visitUnary()
1159 …case EOpAsinh: if(visit == PostVisit) emit(sw::Shader::OPCODE_ASINH, result, arg); brea… in visitUnary()
1160 …case EOpAcosh: if(visit == PostVisit) emit(sw::Shader::OPCODE_ACOSH, result, arg); brea… in visitUnary()
1161 …case EOpAtanh: if(visit == PostVisit) emit(sw::Shader::OPCODE_ATANH, result, arg); brea… in visitUnary()
1162 case EOpExp: if(visit == PostVisit) emit(sw::Shader::OPCODE_EXP, result, arg); break; in visitUnary()
1163 case EOpLog: if(visit == PostVisit) emit(sw::Shader::OPCODE_LOG, result, arg); break; in visitUnary()
1164 …case EOpExp2: if(visit == PostVisit) emit(sw::Shader::OPCODE_EXP2, result, arg); break; in visitUnary()
1165 …case EOpLog2: if(visit == PostVisit) emit(sw::Shader::OPCODE_LOG2, result, arg); break; in visitUnary()
1166 …case EOpSqrt: if(visit == PostVisit) emit(sw::Shader::OPCODE_SQRT, result, arg); break; in visitUnary()
1167 case EOpInverseSqrt: if(visit == PostVisit) emit(sw::Shader::OPCODE_RSQ, result, arg); break; in visitUnary()
1168 …case EOpAbs: if(visit == PostVisit) emit(getOpcode(sw::Shader::OPCODE_ABS, result), r… in visitUnary()
1169 …case EOpSign: if(visit == PostVisit) emit(getOpcode(sw::Shader::OPCODE_SGN, result), r… in visitUnary()
1170 …case EOpFloor: if(visit == PostVisit) emit(sw::Shader::OPCODE_FLOOR, result, arg); brea… in visitUnary()
1171 …case EOpTrunc: if(visit == PostVisit) emit(sw::Shader::OPCODE_TRUNC, result, arg); brea… in visitUnary()
1172 …case EOpRound: if(visit == PostVisit) emit(sw::Shader::OPCODE_ROUND, result, arg); brea… in visitUnary()
1173 …case EOpRoundEven: if(visit == PostVisit) emit(sw::Shader::OPCODE_ROUNDEVEN, result, arg); … in visitUnary()
1174 …case EOpCeil: if(visit == PostVisit) emit(sw::Shader::OPCODE_CEIL, result, arg, result… in visitUnary()
1175 case EOpFract: if(visit == PostVisit) emit(sw::Shader::OPCODE_FRC, result, arg); break; in visitUnary()
1176 …case EOpIsNan: if(visit == PostVisit) emit(sw::Shader::OPCODE_ISNAN, result, arg); brea… in visitUnary()
1177 …case EOpIsInf: if(visit == PostVisit) emit(sw::Shader::OPCODE_ISINF, result, arg); brea… in visitUnary()
1178 …case EOpLength: if(visit == PostVisit) emit(sw::Shader::OPCODE_LEN(dim(arg)), result, ar… in visitUnary()
1179 …case EOpNormalize: if(visit == PostVisit) emit(sw::Shader::OPCODE_NRM(dim(arg)), result, ar… in visitUnary()
1180 …case EOpDFdx: if(visit == PostVisit) emit(sw::Shader::OPCODE_DFDX, result, arg); break; in visitUnary()
1181 …case EOpDFdy: if(visit == PostVisit) emit(sw::Shader::OPCODE_DFDY, result, arg); break; in visitUnary()
1182 …case EOpFwidth: if(visit == PostVisit) emit(sw::Shader::OPCODE_FWIDTH, result, arg); bre… in visitUnary()
1183 case EOpAny: if(visit == PostVisit) emit(sw::Shader::OPCODE_ANY, result, arg); break; in visitUnary()
1184 case EOpAll: if(visit == PostVisit) emit(sw::Shader::OPCODE_ALL, result, arg); break; in visitUnary()
1185 …case EOpFloatBitsToInt: if(visit == PostVisit) emit(sw::Shader::OPCODE_FLOATBITSTOINT, result, a… in visitUnary()
1186 …case EOpFloatBitsToUint: if(visit == PostVisit) emit(sw::Shader::OPCODE_FLOATBITSTOUINT, result, … in visitUnary()
1187 …case EOpIntBitsToFloat: if(visit == PostVisit) emit(sw::Shader::OPCODE_INTBITSTOFLOAT, result, a… in visitUnary()
1188 …case EOpUintBitsToFloat: if(visit == PostVisit) emit(sw::Shader::OPCODE_UINTBITSTOFLOAT, result, … in visitUnary()
1189 …case EOpPackSnorm2x16: if(visit == PostVisit) emit(sw::Shader::OPCODE_PACKSNORM2x16, result, ar… in visitUnary()
1190 …case EOpPackUnorm2x16: if(visit == PostVisit) emit(sw::Shader::OPCODE_PACKUNORM2x16, result, ar… in visitUnary()
1191 …case EOpPackHalf2x16: if(visit == PostVisit) emit(sw::Shader::OPCODE_PACKHALF2x16, result, arg… in visitUnary()
1192 …case EOpUnpackSnorm2x16: if(visit == PostVisit) emit(sw::Shader::OPCODE_UNPACKSNORM2x16, result, … in visitUnary()
1193 …case EOpUnpackUnorm2x16: if(visit == PostVisit) emit(sw::Shader::OPCODE_UNPACKUNORM2x16, result, … in visitUnary()
1194 …case EOpUnpackHalf2x16: if(visit == PostVisit) emit(sw::Shader::OPCODE_UNPACKHALF2x16, result, a… in visitUnary()
1204 Instruction *mov = emit(sw::Shader::OPCODE_MOV, result, j, arg, i); in visitUnary()
1241 Instruction *div = emit(sw::Shader::OPCODE_DIV, &invDet, &one, &invDet); in visitUnary()
1247 emit(sw::Shader::OPCODE_MUL, result, i, result, i, &invDet); in visitUnary()
1292 Instruction *label = emit(sw::Shader::OPCODE_LABEL); in visitAggregate()
1293 label->dst.type = sw::Shader::PARAMETER_LABEL; in visitAggregate()
1319 emit(sw::Shader::OPCODE_RET); in visitAggregate()
1354 Instruction *call = emit(sw::Shader::OPCODE_CALL); in visitAggregate()
1355 call->dst.type = sw::Shader::PARAMETER_LABEL; in visitAggregate()
1385 Instruction *rcp = emit(sw::Shader::OPCODE_RCPX, &coord, arg[1]); in visitAggregate()
1389 Instruction *mul = emit(sw::Shader::OPCODE_MUL, &coord, arg[1], &coord); in visitAggregate()
1395 Instruction *mov = emit(sw::Shader::OPCODE_MOV, &coord, &coord); in visitAggregate()
1401 Instruction *mov = emit(sw::Shader::OPCODE_MOV, &coord, arg[1]); in visitAggregate()
1417 emit(sw::Shader::OPCODE_TEX, result, &coord, s); in visitAggregate()
1421 emit(sw::Shader::OPCODE_TEXBIAS, result, &coord, s, arg[2]); in visitAggregate()
1429 emit(sw::Shader::OPCODE_TEXOFFSET, result, &coord, s, arg[2]); in visitAggregate()
1433 emit(sw::Shader::OPCODE_TEXOFFSETBIAS, result, &coord, s, arg[2], arg[3]); in visitAggregate()
1441 emit(sw::Shader::OPCODE_TEXLOD, result, &coord, s, arg[2]); in visitAggregate()
1445 emit(sw::Shader::OPCODE_TEXLODOFFSET, result, &coord, s, arg[3], arg[2]); in visitAggregate()
1452 emit(sw::Shader::OPCODE_TEXELFETCH, result, &coord, s, arg[2]); in visitAggregate()
1456 emit(sw::Shader::OPCODE_TEXELFETCHOFFSET, result, &coord, s, arg[3], arg[2]); in visitAggregate()
1463 emit(sw::Shader::OPCODE_TEXGRAD, result, &coord, s, arg[2], arg[3]); in visitAggregate()
1467 emit(sw::Shader::OPCODE_TEXGRADOFFSET, result, &coord, s, arg[2], arg[3], arg[4]); in visitAggregate()
1472 emit(sw::Shader::OPCODE_TEXSIZE, result, arg[1], s); in visitAggregate()
1571 emit(sw::Shader::OPCODE_MOV, result, i, &zero); in visitAggregate()
1651 Instruction *mov = emit(sw::Shader::OPCODE_MOV, result, index + offset, argi, index); in visitAggregate()
1659 …case EOpLessThan: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_LT, result, arg[0], a… in visitAggregate()
1660 …case EOpGreaterThan: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_GT, result, arg[0], a… in visitAggregate()
1661 …case EOpLessThanEqual: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_LE, result, arg[0], a… in visitAggregate()
1662 …case EOpGreaterThanEqual: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_GE, result, arg[0], a… in visitAggregate()
1663 …case EOpVectorEqual: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_EQ, result, arg[0], a… in visitAggregate()
1664 …case EOpVectorNotEqual: if(visit == PostVisit) emitCmp(sw::Shader::CONTROL_NE, result, arg[0], a… in visitAggregate()
1665 …case EOpMod: if(visit == PostVisit) emit(sw::Shader::OPCODE_MOD, result, arg[0], arg[… in visitAggregate()
1670 emit(sw::Shader::OPCODE_TRUNC, arg1, arg[0]); in visitAggregate()
1672 emitBinary(sw::Shader::OPCODE_SUB, result, arg[0], arg1); in visitAggregate()
1675 …case EOpPow: if(visit == PostVisit) emit(sw::Shader::OPCODE_POW, result, arg[0], arg[… in visitAggregate()
1676 …case EOpAtan: if(visit == PostVisit) emit(sw::Shader::OPCODE_ATAN2, result, arg[0], ar… in visitAggregate()
1677 …case EOpMin: if(visit == PostVisit) emit(getOpcode(sw::Shader::OPCODE_MIN, result), r… in visitAggregate()
1678 …case EOpMax: if(visit == PostVisit) emit(getOpcode(sw::Shader::OPCODE_MAX, result), r… in visitAggregate()
1682 emit(getOpcode(sw::Shader::OPCODE_MAX, result), result, arg[0], arg[1]); in visitAggregate()
1683 emit(getOpcode(sw::Shader::OPCODE_MIN, result), result, result, arg[2]); in visitAggregate()
1691 emit(sw::Shader::OPCODE_SELECT, result, arg[2], arg[1], arg[0]); in visitAggregate()
1695 emit(sw::Shader::OPCODE_LRP, result, arg[2], arg[1], arg[0]); in visitAggregate()
1699 …case EOpStep: if(visit == PostVisit) emit(sw::Shader::OPCODE_STEP, result, arg[0], arg[1]);… in visitAggregate()
1700 …case EOpSmoothStep: if(visit == PostVisit) emit(sw::Shader::OPCODE_SMOOTH, result, arg[0], arg[1]… in visitAggregate()
1701 …case EOpDistance: if(visit == PostVisit) emit(sw::Shader::OPCODE_DIST(dim(arg[0])), result, arg… in visitAggregate()
1702 …case EOpDot: if(visit == PostVisit) emit(sw::Shader::OPCODE_DP(dim(arg[0])), result, arg[0… in visitAggregate()
1703 …case EOpCross: if(visit == PostVisit) emit(sw::Shader::OPCODE_CRS, result, arg[0], arg[1]); … in visitAggregate()
1704 …case EOpFaceForward: if(visit == PostVisit) emit(sw::Shader::OPCODE_FORWARD(dim(arg[0])), result, … in visitAggregate()
1705 …case EOpReflect: if(visit == PostVisit) emit(sw::Shader::OPCODE_REFLECT(dim(arg[0])), result, … in visitAggregate()
1706 …case EOpRefract: if(visit == PostVisit) emit(sw::Shader::OPCODE_REFRACT(dim(arg[0])), result, … in visitAggregate()
1717 emit(sw::Shader::OPCODE_MUL, result, i, arg[0], i, arg[1], i); in visitAggregate()
1726 Instruction *mul = emit(sw::Shader::OPCODE_MUL, result, i, arg[0], 0, arg[1]); in visitAggregate()
1772 emit(sw::Shader::OPCODE_SELECT, node, condition, trueBlock, falseBlock); in visitSelection()
1776 emit(sw::Shader::OPCODE_IF, 0, condition); in visitSelection()
1786 emit(sw::Shader::OPCODE_ELSE); in visitSelection()
1791 emit(sw::Shader::OPCODE_ENDIF); in visitSelection()
1817 emit(sw::Shader::OPCODE_IF, 0, condition); in visitSelection()
1826 emit(sw::Shader::OPCODE_ELSE); in visitSelection()
1830 emit(sw::Shader::OPCODE_ENDIF); in visitSelection()
1865 …emit(sw::Shader::OPCODE_SCALAR); // Unrolled loops don't have an ENDWHILE to disable scalar mode. in visitLoop()
1872 emit(sw::Shader::OPCODE_MOV, &iterate, &True); in visitLoop()
1874 emit(sw::Shader::OPCODE_WHILE, 0, &iterate); // FIXME: Implement real do-while in visitLoop()
1881 emit(sw::Shader::OPCODE_TEST); in visitLoop()
1884 emit(sw::Shader::OPCODE_MOV, &iterate, condition); in visitLoop()
1886 emit(sw::Shader::OPCODE_ENDWHILE); in visitLoop()
1925 emit(sw::Shader::OPCODE_WHILE, 0, condition); in visitLoop()
1932 emit(sw::Shader::OPCODE_TEST); in visitLoop()
1936 emit(sw::Shader::OPCODE_SCALAR); in visitLoop()
1949 emit(sw::Shader::OPCODE_ENDWHILE); in visitLoop()
1970 case EOpKill: if(visit == PostVisit) emit(sw::Shader::OPCODE_DISCARD); break; in visitBranch()
1971 case EOpBreak: if(visit == PostVisit) emit(sw::Shader::OPCODE_BREAK); break; in visitBranch()
1972 case EOpContinue: if(visit == PostVisit) emit(sw::Shader::OPCODE_CONTINUE); break; in visitBranch()
1983 emit(sw::Shader::OPCODE_LEAVE); in visitBranch()
2009 emit(sw::Shader::OPCODE_SWITCH); in visitSwitch()
2027 emit(sw::Shader::OPCODE_ELSE); in visitSwitch()
2032 emitBinary(sw::Shader::OPCODE_EQ, &result, switchValue, condition); in visitSwitch()
2033 emit(sw::Shader::OPCODE_IF, 0, &result); in visitSwitch()
2061 emit(sw::Shader::OPCODE_ELSE); in visitSwitch()
2074 emit(sw::Shader::OPCODE_ENDIF); in visitSwitch()
2077 emit(sw::Shader::OPCODE_ENDSWITCH); in visitSwitch()
2082 …Instruction *OutputASM::emit(sw::Shader::Opcode op, TIntermTyped *dst, TIntermNode *src0, TIntermN… in emit()
2087 …Instruction *OutputASM::emit(sw::Shader::Opcode op, TIntermTyped *dst, int dstIndex, TIntermNode *… in emit()
2126 case EbtInt: return emit(sw::Shader::OPCODE_B2I, dst, dstIndex, src, srcIndex); in emitCast()
2127 case EbtUInt: return emit(sw::Shader::OPCODE_B2I, dst, dstIndex, src, srcIndex); in emitCast()
2128 case EbtFloat: return emit(sw::Shader::OPCODE_B2F, dst, dstIndex, src, srcIndex); in emitCast()
2135 case EbtBool: return emit(sw::Shader::OPCODE_I2B, dst, dstIndex, src, srcIndex); in emitCast()
2136 case EbtFloat: return emit(sw::Shader::OPCODE_I2F, dst, dstIndex, src, srcIndex); in emitCast()
2143 case EbtBool: return emit(sw::Shader::OPCODE_I2B, dst, dstIndex, src, srcIndex); in emitCast()
2144 case EbtFloat: return emit(sw::Shader::OPCODE_U2F, dst, dstIndex, src, srcIndex); in emitCast()
2151 case EbtBool: return emit(sw::Shader::OPCODE_F2B, dst, dstIndex, src, srcIndex); in emitCast()
2152 case EbtInt: return emit(sw::Shader::OPCODE_F2I, dst, dstIndex, src, srcIndex); in emitCast()
2153 case EbtUInt: return emit(sw::Shader::OPCODE_F2U, dst, dstIndex, src, srcIndex); in emitCast()
2165 return emit(sw::Shader::OPCODE_MOV, dst, dstIndex, src, srcIndex); in emitCast()
2168 …void OutputASM::emitBinary(sw::Shader::Opcode op, TIntermTyped *dst, TIntermNode *src0, TIntermNod… in emitBinary()
2176 …void OutputASM::emitAssign(sw::Shader::Opcode op, TIntermTyped *result, TIntermTyped *lhs, TInterm… in emitAssign()
2182 …void OutputASM::emitCmp(sw::Shader::Control cmpOp, TIntermTyped *dst, TIntermNode *left, TIntermNo… in emitCmp()
2184 sw::Shader::Opcode opcode; in emitCmp()
2189 opcode = sw::Shader::OPCODE_ICMP; in emitCmp()
2192 opcode = sw::Shader::OPCODE_UCMP; in emitCmp()
2195 opcode = sw::Shader::OPCODE_CMP; in emitCmp()
2381 void OutputASM::source(sw::Shader::SourceParameter ¶meter, TIntermNode *argument, int index) in source()
2400 Instruction *instruction = new Instruction(sw::Shader::OPCODE_I2B); in source()
2401 instruction->dst.type = sw::Shader::PARAMETER_TEMP; in source()
2403 instruction->src[0].type = sw::Shader::PARAMETER_CONST; in source()
2427 Instruction *instruction = new Instruction(sw::Shader::OPCODE_MOV); in source()
2428 instruction->dst.type = sw::Shader::PARAMETER_TEMP; in source()
2431 instruction->src[0].type = sw::Shader::PARAMETER_CONST; in source()
2491 …void OutputASM::destination(sw::Shader::DestinationParameter ¶meter, TIntermTyped *arg, int in… in destination()
2502 Instruction *mov = emit(sw::Shader::OPCODE_MOV, dst, index, src, offset + index); in copy()
2531 Instruction *insert = new Instruction(sw::Shader::OPCODE_INSERT); in assignLvalue()
2545 Instruction *mov1 = new Instruction(sw::Shader::OPCODE_MOV); in assignLvalue()
2556 Instruction *mov = new Instruction(sw::Shader::OPCODE_MOV); in assignLvalue()
2575 Instruction *insert = new Instruction(sw::Shader::OPCODE_EXTRACT); in evaluateRvalue()
2594 Instruction *mov1 = new Instruction(sw::Shader::OPCODE_MOV); in evaluateRvalue()
2611 Instruction *mov = emit(sw::Shader::OPCODE_MOV, node, i, root, offset + i); in evaluateRvalue()
2617 int OutputASM::lvalue(sw::Shader::DestinationParameter &dst, TIntermTyped *node) in lvalue()
2632 …int OutputASM::lvalue(TIntermTyped *&root, unsigned int &offset, sw::Shader::Relative &rel, unsign… in lvalue()
2686 …if(rel.type == sw::Shader::PARAMETER_VOID) // Use the index register as the relative address dir… in lvalue()
2690 sw::Shader::SourceParameter relativeRegister; in lvalue()
2706 Instruction *mad = emit(sw::Shader::OPCODE_IMAD, &address, &address, &oldScale, right); in lvalue()
2713 Instruction *mul = emit(sw::Shader::OPCODE_IMUL, &address, &address, &oldScale); in lvalue()
2718 emit(sw::Shader::OPCODE_IMAD, &address, right, &newScale, &address); in lvalue()
2721 rel.type = sw::Shader::PARAMETER_TEMP; in lvalue()
2729 emit(sw::Shader::OPCODE_IADD, &address, &address, right); in lvalue()
2734 emit(sw::Shader::OPCODE_IMAD, &address, right, &newScale, &address); in lvalue()
2813 sw::Shader::ParameterType OutputASM::registerType(TIntermTyped *operand) in registerType()
2817 return sw::Shader::PARAMETER_SAMPLER; in registerType()
2836 return sw::Shader::PARAMETER_CONST; in registerType()
2840 return sw::Shader::PARAMETER_TEMP; in registerType()
2846 case EvqTemporary: return sw::Shader::PARAMETER_TEMP; in registerType()
2847 case EvqGlobal: return sw::Shader::PARAMETER_TEMP; in registerType()
2848 …case EvqConstExpr: return sw::Shader::PARAMETER_FLOAT4LITERAL; // All converted to flo… in registerType()
2849 case EvqAttribute: return sw::Shader::PARAMETER_INPUT; in registerType()
2850 case EvqVaryingIn: return sw::Shader::PARAMETER_INPUT; in registerType()
2851 case EvqVaryingOut: return sw::Shader::PARAMETER_OUTPUT; in registerType()
2852 case EvqVertexIn: return sw::Shader::PARAMETER_INPUT; in registerType()
2853 case EvqFragmentOut: return sw::Shader::PARAMETER_COLOROUT; in registerType()
2854 case EvqVertexOut: return sw::Shader::PARAMETER_OUTPUT; in registerType()
2855 case EvqFragmentIn: return sw::Shader::PARAMETER_INPUT; in registerType()
2856 …case EvqInvariantVaryingIn: return sw::Shader::PARAMETER_INPUT; // FIXME: Guarantee invariance… in registerType()
2857 …case EvqInvariantVaryingOut: return sw::Shader::PARAMETER_OUTPUT; // FIXME: Guarantee invariance… in registerType()
2858 case EvqSmooth: return sw::Shader::PARAMETER_OUTPUT; in registerType()
2859 case EvqFlat: return sw::Shader::PARAMETER_OUTPUT; in registerType()
2860 case EvqCentroidOut: return sw::Shader::PARAMETER_OUTPUT; in registerType()
2861 case EvqSmoothIn: return sw::Shader::PARAMETER_INPUT; in registerType()
2862 case EvqFlatIn: return sw::Shader::PARAMETER_INPUT; in registerType()
2863 case EvqCentroidIn: return sw::Shader::PARAMETER_INPUT; in registerType()
2864 case EvqUniform: return sw::Shader::PARAMETER_CONST; in registerType()
2865 case EvqIn: return sw::Shader::PARAMETER_TEMP; in registerType()
2866 case EvqOut: return sw::Shader::PARAMETER_TEMP; in registerType()
2867 case EvqInOut: return sw::Shader::PARAMETER_TEMP; in registerType()
2868 case EvqConstReadOnly: return sw::Shader::PARAMETER_TEMP; in registerType()
2869 case EvqPosition: return sw::Shader::PARAMETER_OUTPUT; in registerType()
2870 case EvqPointSize: return sw::Shader::PARAMETER_OUTPUT; in registerType()
2871 case EvqInstanceID: return sw::Shader::PARAMETER_MISCTYPE; in registerType()
2872 case EvqVertexID: return sw::Shader::PARAMETER_MISCTYPE; in registerType()
2873 case EvqFragCoord: return sw::Shader::PARAMETER_MISCTYPE; in registerType()
2874 case EvqFrontFacing: return sw::Shader::PARAMETER_MISCTYPE; in registerType()
2875 case EvqPointCoord: return sw::Shader::PARAMETER_INPUT; in registerType()
2876 case EvqFragColor: return sw::Shader::PARAMETER_COLOROUT; in registerType()
2877 case EvqFragData: return sw::Shader::PARAMETER_COLOROUT; in registerType()
2878 case EvqFragDepth: return sw::Shader::PARAMETER_DEPTHOUT; in registerType()
2882 return sw::Shader::PARAMETER_VOID; in registerType()
2929 …case EvqInstanceID: vertexShader->declareInstanceId(); return sw::Shader::InstanceIDIndex; in registerIndex()
2930 case EvqVertexID: vertexShader->declareVertexId(); return sw::Shader::VertexIDIndex; in registerIndex()
2931 case EvqFragCoord: pixelShader->declareVPos(); return sw::Shader::VPosIndex; in registerIndex()
2932 case EvqFrontFacing: pixelShader->declareVFace(); return sw::Shader::VFaceIndex; in registerIndex()
3100 …pixelShader->setInput(var + i, type.registerSize(), sw::Shader::Semantic(sw::Shader::USAGE_COLOR, … in setPixelShaderInputs()
3125 …pixelShader->setInput(var, varying->registerSize(), sw::Shader::Semantic(sw::Shader::USAGE_TEXCOOR… in varyingRegister()
3343 …vertexShader->setInput(index + i, sw::Shader::Semantic(sw::Shader::USAGE_TEXCOORD, index + i, fals… in attributeRegister()