From 642283a2c15fa084454090a65d508ff4035d4d17 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Thu, 23 Jun 2022 13:19:12 -0500 Subject: [PATCH] panfrost,asahi: Use util_sign_extend for unpacking Reviewed-by: Alyssa Rosenzweig Reviewed-by: Kristian H. Kristensen Part-of: --- src/asahi/lib/gen_pack.py | 3 +-- src/panfrost/lib/genxml/gen_pack.py | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/asahi/lib/gen_pack.py b/src/asahi/lib/gen_pack.py index 4fd3eb14669..6f6f3518e5d 100644 --- a/src/asahi/lib/gen_pack.py +++ b/src/asahi/lib/gen_pack.py @@ -117,8 +117,7 @@ __gen_unpack_sint(const uint8_t *restrict cl, uint32_t start, uint32_t end) int size = end - start + 1; int64_t val = __gen_unpack_uint(cl, start, end); - /* Get the sign bit extended. */ - return (val << (64 - size)) >> (64 - size); + return util_sign_extend(val, size); } #define agx_prepare(dst, T) \\ diff --git a/src/panfrost/lib/genxml/gen_pack.py b/src/panfrost/lib/genxml/gen_pack.py index f6b1a0f691c..7a177b138a3 100644 --- a/src/panfrost/lib/genxml/gen_pack.py +++ b/src/panfrost/lib/genxml/gen_pack.py @@ -118,8 +118,7 @@ __gen_unpack_sint(const uint8_t *restrict cl, uint32_t start, uint32_t end) int size = end - start + 1; int64_t val = __gen_unpack_uint(cl, start, end); - /* Get the sign bit extended. */ - return (val << (64 - size)) >> (64 - size); + return util_sign_extend(val, size); } static inline uint64_t