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:
parent
bc5e77a9f2
commit
6787c96039
|
@ -32,6 +32,7 @@
|
||||||
|
|
||||||
#include <util/macros.h>
|
#include <util/macros.h>
|
||||||
#include <util/ralloc.h>
|
#include <util/ralloc.h>
|
||||||
|
#include <util/u_math.h>
|
||||||
|
|
||||||
#include "intel_decoder.h"
|
#include "intel_decoder.h"
|
||||||
|
|
||||||
|
@ -1094,7 +1095,7 @@ iter_decode_field(struct intel_field_iterator *iter)
|
||||||
case INTEL_TYPE_SFIXED: {
|
case INTEL_TYPE_SFIXED: {
|
||||||
/* Sign extend before converting */
|
/* Sign extend before converting */
|
||||||
int bits = iter->field->type.i + iter->field->type.f + 1;
|
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",
|
snprintf(iter->value, sizeof(iter->value), "%f",
|
||||||
(float) v_sign_extend / (1 << iter->field->type.f));
|
(float) v_sign_extend / (1 << iter->field->type.f));
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue