intel/decoder: don't consider header fields past dword0
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Tue, 10 Mar 2020 15:49:30 +0000 (17:49 +0200)
committerMarge Bot <eric+marge@anholt.net>
Wed, 18 Mar 2020 09:19:53 +0000 (09:19 +0000)
v2: use ULL

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4134>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4134>

src/intel/common/gen_decoder.c

index 97e8f16..d07962a 100644 (file)
@@ -1208,10 +1208,12 @@ gen_field_is_header(struct gen_field *field)
 {
    uint32_t bits;
 
-   if (field->start >= 32)
+   /* Instructions are identified by the first DWord. */
+   if (field->start >= 32 ||
+       field->end >= 32)
       return false;
 
-   bits = (1U << (field->end - field->start + 1)) - 1;
+   bits = (1ULL << (field->end - field->start + 1)) - 1;
    bits <<= field->start;
 
    return (field->parent->opcode_mask & bits) != 0;