static void transform_srcreg( struct tgsi_to_rc * ttr, struct rc_src_register * dst, struct tgsi_full_src_register * src) { unsigned i, j; dst->File = translate_register_file(src->Register.File); dst->Index = translate_register_index(ttr, src->Register.File, src->Register.Index); dst->RelAddr = src->Register.Indirect; dst->Swizzle = tgsi_util_get_full_src_register_swizzle(src, 0); dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 1) << 3; dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 2) << 6; dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 3) << 9; dst->Abs = src->Register.Absolute; dst->Negate = src->Register.Negate ? RC_MASK_XYZW : 0; if (src->Register.File == TGSI_FILE_IMMEDIATE) { for (i = 0; i < ttr->imms_to_swizzle_count; i++) { if (ttr->imms_to_swizzle[i].index == src->Register.Index) { dst->File = RC_FILE_TEMPORARY; dst->Index = 0; dst->Swizzle = 0; for (j = 0; j < 4; j++) { dst->Swizzle |= GET_SWZ(ttr->imms_to_swizzle[i].swizzle, tgsi_util_get_full_src_register_swizzle(src, j)) << (j * 3); } break; } } } }
static void transform_dstreg( struct tgsi_to_rc * ttr, struct rc_dst_register * dst, struct tgsi_full_dst_register * src) { dst->File = translate_register_file(src->DstRegister.File); dst->Index = translate_register_index(ttr, src->DstRegister.File, src->DstRegister.Index); dst->WriteMask = src->DstRegister.WriteMask; dst->RelAddr = src->DstRegister.Indirect; }
static void transform_dstreg( struct tgsi_to_rc * ttr, struct rc_dst_register * dst, struct tgsi_full_dst_register * src) { dst->File = translate_register_file(src->Register.File); dst->Index = translate_register_index(ttr, src->Register.File, src->Register.Index); dst->WriteMask = src->Register.WriteMask; if (src->Register.Indirect) { ttr->error = TRUE; fprintf(stderr, "r300: Relative addressing of destination operands " "is unsupported.\n"); } }
static void transform_srcreg( struct tgsi_to_rc * ttr, struct rc_src_register * dst, struct tgsi_full_src_register * src) { dst->File = translate_register_file(src->SrcRegister.File); dst->Index = translate_register_index(ttr, src->SrcRegister.File, src->SrcRegister.Index); dst->RelAddr = src->SrcRegister.Indirect; dst->Swizzle = tgsi_util_get_full_src_register_swizzle(src, 0); dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 1) << 3; dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 2) << 6; dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 3) << 9; dst->Abs = src->SrcRegisterExtMod.Absolute; dst->Negate = src->SrcRegister.Negate ? RC_MASK_XYZW : 0; }