i965/fs: Add vector float immediate infrastructure.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
276075f864
commit
5d23721c1d
|
@ -581,6 +581,18 @@ fs_reg::fs_reg(uint32_t u)
|
|||
this->width = 1;
|
||||
}
|
||||
|
||||
/** Vector float immediate value constructor. */
|
||||
fs_reg::fs_reg(uint8_t vf0, uint8_t vf1, uint8_t vf2, uint8_t vf3)
|
||||
{
|
||||
init();
|
||||
this->file = IMM;
|
||||
this->type = BRW_REGISTER_TYPE_VF;
|
||||
this->fixed_hw_reg.dw1.ud = (vf0 << 0) |
|
||||
(vf1 << 8) |
|
||||
(vf2 << 16) |
|
||||
(vf3 << 24);
|
||||
}
|
||||
|
||||
/** Fixed brw_reg. */
|
||||
fs_reg::fs_reg(struct brw_reg fixed_hw_reg)
|
||||
{
|
||||
|
@ -3189,6 +3201,13 @@ fs_visitor::dump_instruction(backend_instruction *be_inst, FILE *file)
|
|||
case BRW_REGISTER_TYPE_UD:
|
||||
fprintf(file, "%uu", inst->src[i].fixed_hw_reg.dw1.ud);
|
||||
break;
|
||||
case BRW_REGISTER_TYPE_VF:
|
||||
fprintf(stderr, "[%-gF, %-gF, %-gF, %-gF]",
|
||||
brw_vf_to_float((inst->src[i].fixed_hw_reg.dw1.ud >> 0) & 0xff),
|
||||
brw_vf_to_float((inst->src[i].fixed_hw_reg.dw1.ud >> 8) & 0xff),
|
||||
brw_vf_to_float((inst->src[i].fixed_hw_reg.dw1.ud >> 16) & 0xff),
|
||||
brw_vf_to_float((inst->src[i].fixed_hw_reg.dw1.ud >> 24) & 0xff));
|
||||
break;
|
||||
default:
|
||||
fprintf(file, "???");
|
||||
break;
|
||||
|
|
|
@ -76,6 +76,8 @@ public:
|
|||
explicit fs_reg(float f);
|
||||
explicit fs_reg(int32_t i);
|
||||
explicit fs_reg(uint32_t u);
|
||||
explicit fs_reg(uint8_t vf[4]);
|
||||
explicit fs_reg(uint8_t vf0, uint8_t vf1, uint8_t vf2, uint8_t vf3);
|
||||
fs_reg(struct brw_reg fixed_hw_reg);
|
||||
fs_reg(enum register_file file, int reg);
|
||||
fs_reg(enum register_file file, int reg, enum brw_reg_type type);
|
||||
|
|
|
@ -1255,6 +1255,9 @@ brw_reg_from_fs_reg(fs_reg *reg)
|
|||
case BRW_REGISTER_TYPE_UD:
|
||||
brw_reg = brw_imm_ud(reg->fixed_hw_reg.dw1.ud);
|
||||
break;
|
||||
case BRW_REGISTER_TYPE_VF:
|
||||
brw_reg = brw_imm_vf(reg->fixed_hw_reg.dw1.ud);
|
||||
break;
|
||||
default:
|
||||
unreachable("not reached");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue