Lines Matching refs:operand

312                          const struct Shader_dst_operand *operand)
318 if (sx->clip_distance_mapping[0].d3d == operand->base.index[0].imm) {
321 assert(sx->clip_distance_mapping[1].d3d == operand->base.index[0].imm);
326 if (sx->cull_distance_mapping[0].d3d == operand->base.index[0].imm) {
329 assert(sx->cull_distance_mapping[1].d3d == operand->base.index[0].imm);
425 const struct Shader_dst_operand *operand)
428 operand->mask >> D3D10_SB_OPERAND_4_COMPONENT_MASK_SHIFT;
429 unsigned idx = operand->base.index[0].imm;
451 const struct Shader_dst_operand *operand,
457 operand->mask >> D3D10_SB_OPERAND_4_COMPONENT_MASK_SHIFT;
658 const struct Shader_relative_operand *operand)
662 switch (operand->type) {
664 assert(operand->index[0].imm < SHADER_MAX_TEMPS);
666 reg = ureg_src(sx->temps[sx->temp_offset + operand->index[0].imm]);
674 assert(operand->index[1].imm < SHADER_MAX_TEMPS);
676 reg = ureg_src(sx->temps[sx->indexable_temp_offsets[operand->index[0].imm] +
677 operand->index[1].imm]);
702 reg = ureg_scalar(reg, operand->comp);
708 const struct Shader_operand *operand,
713 switch (operand->type) {
715 assert(operand->index_dim == 1);
716 assert(operand->index[0].index_rep == D3D10_SB_OPERAND_INDEX_IMMEDIATE32);
717 assert(operand->index[0].imm < SHADER_MAX_TEMPS);
719 reg = sx->temps[sx->temp_offset + operand->index[0].imm];
723 assert(operand->index_dim == 1);
724 assert(operand->index[0].imm < SHADER_MAX_OUTPUTS);
726 if (operand->index[0].index_rep == D3D10_SB_OPERAND_INDEX_IMMEDIATE32) {
728 reg = sx->outputs[operand->index[0].imm].reg[0];
734 reg = sx->outputs[operand->index[0].imm].reg[i];
741 translate_relative_operand(sx, &operand->index[0].rel);
742 assert(operand->index[0].index_rep == D3D10_SB_OPERAND_INDEX_IMMEDIATE32_PLUS_RELATIVE);
743 reg = ureg_dst_indirect(sx->outputs[operand->index[0].imm].reg[0], addr);
748 assert(operand->index_dim == 0);
754 assert(operand->index_dim == 0);
782 const struct Shader_operand *operand)
785 switch (operand->index[1].index_rep) {
788 sx->temps[sx->indexable_temp_offsets[operand->index[0].imm] +
789 operand->index[1].imm]);
794 sx->indexable_temp_offsets[operand->index[0].imm]]),
796 &operand->index[1].rel));
801 operand->index[1].imm +
802 sx->indexable_temp_offsets[operand->index[0].imm]]),
804 &operand->index[1].rel));
817 const struct Shader_dst_operand *operand,
822 operand->mask >> D3D10_SB_OPERAND_4_COMPONENT_MASK_SHIFT;
830 switch (operand->base.type) {
832 assert(operand->base.index_dim == 2);
833 assert(operand->base.index[0].index_rep == D3D10_SB_OPERAND_INDEX_IMMEDIATE32);
834 assert(operand->base.index[0].imm < SHADER_MAX_INDEXABLE_TEMPS);
836 reg = ureg_dst(translate_indexable_temp(sx, &operand->base));
840 reg = translate_operand(sx, &operand->base, writemask);
844 if (operand->base.type != D3D10_SB_OPERAND_TYPE_OUTPUT_DEPTH) {
857 const struct Shader_src_operand *operand,
862 switch (operand->base.type) {
864 if (operand->base.index_dim == 1) {
865 switch (operand->base.index[0].index_rep) {
867 assert(operand->base.index[0].imm < SHADER_MAX_INPUTS);
868 reg = sx->inputs[operand->base.index[0].imm].reg;
872 translate_relative_operand(sx, &operand->base.index[0].rel);
878 translate_relative_operand(sx, &operand->base.index[0].rel);
879 reg = ureg_src_indirect(sx->inputs[operand->base.index[0].imm].reg, tmp);
889 assert(operand->base.index_dim == 2);
890 assert(operand->base.index[1].imm < SHADER_MAX_INPUTS);
892 switch (operand->base.index[1].index_rep) {
894 reg = sx->inputs[operand->base.index[1].imm].reg;
898 translate_relative_operand(sx, &operand->base.index[1].rel);
904 translate_relative_operand(sx, &operand->base.index[1].rel);
905 reg = ureg_src_indirect(sx->inputs[operand->base.index[1].imm].reg, tmp);
914 switch (operand->base.index[0].index_rep) {
916 reg = ureg_src_dimension(reg, operand->base.index[0].imm);
920 translate_relative_operand(sx, &operand->base.index[0].rel);
926 translate_relative_operand(sx, &operand->base.index[0].rel);
927 reg = ureg_src_dimension_indirect(reg, tmp, operand->base.index[0].imm);
939 assert(operand->base.index_dim == 2);
940 assert(operand->base.index[0].index_rep == D3D10_SB_OPERAND_INDEX_IMMEDIATE32);
941 assert(operand->base.index[0].imm < SHADER_MAX_INDEXABLE_TEMPS);
943 reg = translate_indexable_temp(sx, &operand->base);
950 operand->imm[0].f32,
951 operand->imm[1].f32,
952 operand->imm[2].f32,
953 operand->imm[3].f32);
957 operand->imm[0].i32,
958 operand->imm[1].i32,
959 operand->imm[2].i32,
960 operand->imm[3].i32);
964 operand->imm[0].u32,
965 operand->imm[1].u32,
966 operand->imm[2].u32,
967 operand->imm[3].u32);
976 assert(operand->base.index_dim == 1);
977 assert(operand->base.index[0].index_rep == D3D10_SB_OPERAND_INDEX_IMMEDIATE32);
978 assert(operand->base.index[0].imm < SHADER_MAX_SAMPLERS);
980 reg = sx->samplers[operand->base.index[0].imm];
984 assert(operand->base.index_dim == 1);
985 assert(operand->base.index[0].index_rep == D3D10_SB_OPERAND_INDEX_IMMEDIATE32);
986 assert(operand->base.index[0].imm < SHADER_MAX_RESOURCES);
988 reg = sx->sv[operand->base.index[0].imm];
992 assert(operand->base.index_dim == 2);
994 assert(operand->base.index[0].index_rep == D3D10_SB_OPERAND_INDEX_IMMEDIATE32);
995 assert(operand->base.index[0].imm < PIPE_MAX_CONSTANT_BUFFERS);
997 switch (operand->base.index[1].index_rep) {
999 assert(operand->base.index[1].imm < SHADER_MAX_CONSTS);
1001 reg = ureg_src_register(TGSI_FILE_CONSTANT, operand->base.index[1].imm);
1002 reg = ureg_src_dimension(reg, operand->base.index[0].imm);
1006 reg = ureg_src_register(TGSI_FILE_CONSTANT, operand->base.index[1].imm);
1009 translate_relative_operand(sx, &operand->base.index[1].rel));
1010 reg = ureg_src_dimension(reg, operand->base.index[0].imm);
1021 assert(operand->base.index_dim == 1);
1023 switch (operand->base.index[0].index_rep) {
1026 reg.Index += operand->base.index[0].imm;
1031 reg.Index += operand->base.index[0].imm;
1034 translate_relative_operand(sx, &operand->base.index[0].rel));
1048 reg = ureg_src(translate_operand(sx, &operand->base, 0));
1052 operand->swizzle[0],
1053 operand->swizzle[1],
1054 operand->swizzle[2],
1055 operand->swizzle[3]);
1057 switch (operand->modifier) {
1132 operand_is_scalar(const struct Shader_src_operand *operand)
1134 return operand->swizzle[0] == operand->swizzle[1] &&
1135 operand->swizzle[1] == operand->swizzle[2] &&
1136 operand->swizzle[2] == operand->swizzle[3];
1391 * this opcode regardless, so we just ignore sample index operand
1549 * in a single operand for all possible cases.
1602 * in a single operand for all possible cases.