intel/decoder: Use util_mask_sign_extend()

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214>
This commit is contained in:
Jason Ekstrand 2022-06-23 13:05:14 -05:00 committed by Marge Bot
parent bc5e77a9f2
commit 6787c96039
1 changed files with 2 additions and 1 deletions

View File

@ -32,6 +32,7 @@
#include <util/macros.h>
#include <util/ralloc.h>
#include <util/u_math.h>
#include "intel_decoder.h"
@ -1094,7 +1095,7 @@ iter_decode_field(struct intel_field_iterator *iter)
case INTEL_TYPE_SFIXED: {
/* Sign extend before converting */
int bits = iter->field->type.i + iter->field->type.f + 1;
int64_t v_sign_extend = ((int64_t)(v.qw << (64 - bits))) >> (64 - bits);
int64_t v_sign_extend = util_mask_sign_extend(v.qw, bits);
snprintf(iter->value, sizeof(iter->value), "%f",
(float) v_sign_extend / (1 << iter->field->type.f));
break;