diff --git a/gpu/include/cricket-types.h b/gpu/include/cricket-types.h
index 3b301c35a293c615d3080e7935f2c43edbc06664..dc2baaea9b063749c9d7ee097dec5c4b1609f3ac 100644
--- a/gpu/include/cricket-types.h
+++ b/gpu/include/cricket-types.h
@@ -59,7 +59,7 @@ typedef struct _cricket_param_info
     uint16_t index;
     uint16_t ordinal;
     uint16_t offset;
-    uint8_t size;
+    uint16_t size;
 } cricket_param_info;
 
 typedef struct _cricket_elf_info
diff --git a/gpu/src/cricket-elf.c b/gpu/src/cricket-elf.c
index 480c9773ac9b97e7bde715f0b278ce6568f1df38..4d2b9f6ff4cd9a16e0fa9c97cb4295f186bc875d 100644
--- a/gpu/src/cricket-elf.c
+++ b/gpu/src/cricket-elf.c
@@ -381,7 +381,7 @@ bool cricket_elf_get_info(const char *function_name, cricket_elf_info *info)
                     info->params[i].index = *(uint16_t *)(attrs + 4 + i * 12);
                     info->params[i].offset = *(uint16_t *)(attrs + 6 + i * 12);
                     info->params[i].size =
-                        *(uint8_t *)(attrs + 10 + i * 12) >> 2;
+                        *(uint16_t *)(attrs + 10 + i * 12) >> 2;
                 }
                 free(attrs);
                 if (!cricket_elf_extract_attribute((*objfile)->obfd, section,