In disassemble, a float immediate value is printf with %g, it outputs a wrong value with 8 bytes, change it to be %f with the correct 4 bytes. At some cases, the real data type is not float, so also print the value in hex format.
Signed-off-by: Guo Yejun <[email protected]> --- backend/src/backend/gen/gen_mesa_disasm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/backend/gen/gen_mesa_disasm.c b/backend/src/backend/gen/gen_mesa_disasm.c index df6156c..090143e 100644 --- a/backend/src/backend/gen/gen_mesa_disasm.c +++ b/backend/src/backend/gen/gen_mesa_disasm.c @@ -986,7 +986,7 @@ static int imm(FILE *file, uint32_t type, const void* inst) format(file, "0x%xV", GEN_BITS_FIELD(inst, bits3.ud)); break; case GEN_TYPE_F: - format(file, "%-gF", GEN_BITS_FIELD(inst, bits3.f)); + format(file, "%.*fF (0x%x)", GEN_BITS_FIELD(inst, bits3.f), GEN_BITS_FIELD(inst, bits3.ud)); break; case GEN_TYPE_UL: assert(!(gen_version < 80)); -- 1.9.1 _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
