From 6e4672f881bbc73c56b0d81dfea93d09f8d39eec Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 30 May 2018 20:00:37 -0700 Subject: [PATCH] intel/common: Add an address de-canonicalization helper Reviewed-by: Kenneth Graunke Reviewed-by: Scott D Phillips --- src/intel/common/gen_gem.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/intel/common/gen_gem.h b/src/intel/common/gen_gem.h index 842a455e050..7dd9ae6d548 100644 --- a/src/intel/common/gen_gem.h +++ b/src/intel/common/gen_gem.h @@ -40,4 +40,16 @@ gen_canonical_address(uint64_t v) return (int64_t)(v << shift) >> shift; } +/** + * This returns a 48-bit address with the high 16 bits zeroed. + * + * It's the opposite of gen_canonicalize_address. + */ +static inline uint64_t +gen_48b_address(uint64_t v) +{ + const int shift = 63 - 47; + return (uint64_t)(v << shift) >> shift; +} + #endif /* GEN_GEM_H */ -- 2.30.2