[i965] short immediate values must be replicated to both halves of the dword
The 32-bit immediate value in the i965 instruction word must contain two copies of any 16-bit constants. brw_imm_uw and brw_imm_w just needed to copy the value into both halves of the immediate value instruction field.
This commit is contained in:
@@ -335,14 +335,14 @@ static __inline struct brw_reg brw_imm_ud( GLuint ud )
|
|||||||
static __inline struct brw_reg brw_imm_uw( GLushort uw )
|
static __inline struct brw_reg brw_imm_uw( GLushort uw )
|
||||||
{
|
{
|
||||||
struct brw_reg imm = brw_imm_reg(BRW_REGISTER_TYPE_UW);
|
struct brw_reg imm = brw_imm_reg(BRW_REGISTER_TYPE_UW);
|
||||||
imm.dw1.ud = uw;
|
imm.dw1.ud = uw | (uw << 16);
|
||||||
return imm;
|
return imm;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline struct brw_reg brw_imm_w( GLshort w )
|
static __inline struct brw_reg brw_imm_w( GLshort w )
|
||||||
{
|
{
|
||||||
struct brw_reg imm = brw_imm_reg(BRW_REGISTER_TYPE_W);
|
struct brw_reg imm = brw_imm_reg(BRW_REGISTER_TYPE_W);
|
||||||
imm.dw1.d = w;
|
imm.dw1.d = w | (w << 16);
|
||||||
return imm;
|
return imm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user