2 #include "cell/common.h"
3 #include "pipe/p_shader_tokens.h"
4 #include "util/u_debug.h"
5 #include "tgsi/tgsi_parse.h"
6 //#include "tgsi_build.h"
7 #include "tgsi/tgsi_util.h"
10 tgsi_util_get_src_register_swizzle(
11 const struct tgsi_src_register
*reg
,
31 tgsi_util_get_full_src_register_extswizzle(
32 const struct tgsi_full_src_register
*reg
,
35 return tgsi_util_get_src_register_swizzle(
41 tgsi_util_get_src_register_extnegate(
42 const struct tgsi_src_register_ext_swz
*reg
,
61 tgsi_util_set_src_register_extnegate(
62 struct tgsi_src_register_ext_swz
*reg
,
68 reg
->NegateX
= negate
;
71 reg
->NegateY
= negate
;
74 reg
->NegateZ
= negate
;
77 reg
->NegateW
= negate
;
85 tgsi_util_get_full_src_register_sign_mode(
86 const struct tgsi_full_src_register
*reg
,
91 if( reg
->SrcRegisterExtMod
.Absolute
) {
92 /* Consider only the post-abs negation. */
94 if( reg
->SrcRegisterExtMod
.Negate
) {
95 sign_mode
= TGSI_UTIL_SIGN_SET
;
98 sign_mode
= TGSI_UTIL_SIGN_CLEAR
;
102 /* Accumulate the three negations. */
106 negate
= reg
->SrcRegister
.Negate
;
107 if( tgsi_util_get_src_register_extnegate( ®
->SrcRegisterExtSwz
, component
) ) {
110 if( reg
->SrcRegisterExtMod
.Negate
) {
115 sign_mode
= TGSI_UTIL_SIGN_TOGGLE
;
118 sign_mode
= TGSI_UTIL_SIGN_KEEP
;