intel/compiler: Print hex representation along with floating point value

While encoding the immediate floating point values in instruction we use
values upto precision 9, but while disassembling, we print precision to
6 places, which round up the value and gives wrong interpretation for
encoded immediate constant.

To avoid misinterpretation of encoded immediate values in instruction
and disassembled output, print hex representation along with floating
point value which can be used by assembler in future.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
This commit is contained in:
Sagar Ghuge 2018-10-24 13:27:27 -07:00 committed by Samuel Iglesias Gonsalvez
parent 07a00a8729
commit d15fa24860
1 changed files with 9 additions and 3 deletions

View File

@ -1283,7 +1283,9 @@ imm(FILE *file, const struct gen_device_info *devinfo, enum brw_reg_type type,
format(file, "0x%08xUV", brw_inst_imm_ud(devinfo, inst));
break;
case BRW_REGISTER_TYPE_VF:
format(file, "[%-gF, %-gF, %-gF, %-gF]VF",
format(file, "0x%"PRIx64"VF", brw_inst_bits(inst, 127, 96));
pad(file, 48);
format(file, "/* [%-gF, %-gF, %-gF, %-gF]VF */",
brw_vf_to_float(brw_inst_imm_ud(devinfo, inst)),
brw_vf_to_float(brw_inst_imm_ud(devinfo, inst) >> 8),
brw_vf_to_float(brw_inst_imm_ud(devinfo, inst) >> 16),
@ -1293,10 +1295,14 @@ imm(FILE *file, const struct gen_device_info *devinfo, enum brw_reg_type type,
format(file, "0x%08xV", brw_inst_imm_ud(devinfo, inst));
break;
case BRW_REGISTER_TYPE_F:
format(file, "%-gF", brw_inst_imm_f(devinfo, inst));
format(file, "0x%"PRIx64"F", brw_inst_bits(inst, 127, 96));
pad(file, 48);
format(file, " /* %-gF */", brw_inst_imm_f(devinfo, inst));
break;
case BRW_REGISTER_TYPE_DF:
format(file, "%-gDF", brw_inst_imm_df(devinfo, inst));
format(file, "0x%016"PRIx64"DF", brw_inst_bits(inst, 127, 64));
pad(file, 48);
format(file, "/* %-gDF */", brw_inst_imm_df(devinfo, inst));
break;
case BRW_REGISTER_TYPE_HF:
string(file, "Half Float IMM");