From: Taylor Simpson Date: Tue, 17 Feb 2026 21:22:39 +0000 (-0700) Subject: Hexagon (linux-user/hexagon) Identify Hexagon version in ELF file X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=910ce4de83b16ff6d1fb5b1c81dfefc63dfbbd0d;p=thirdparty%2Fqemu.git Hexagon (linux-user/hexagon) Identify Hexagon version in ELF file Return proper Hexagon CPU version from get_elf_cpu_model Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Brian Cain Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson Signed-off-by: Brian Cain --- diff --git a/linux-user/hexagon/elfload.c b/linux-user/hexagon/elfload.c index d8b545032ab..39b02018145 100644 --- a/linux-user/hexagon/elfload.c +++ b/linux-user/hexagon/elfload.c @@ -10,23 +10,32 @@ const char *get_elf_cpu_model(uint32_t eflags) static char buf[32]; int err; - /* For now, treat anything newer than v5 as a v73 */ - /* FIXME - Disable instructions that are newer than the specified arch */ - if (eflags == 0x04 || /* v5 */ - eflags == 0x05 || /* v55 */ - eflags == 0x60 || /* v60 */ - eflags == 0x61 || /* v61 */ - eflags == 0x62 || /* v62 */ - eflags == 0x65 || /* v65 */ - eflags == 0x66 || /* v66 */ - eflags == 0x67 || /* v67 */ - eflags == 0x8067 || /* v67t */ - eflags == 0x68 || /* v68 */ - eflags == 0x69 || /* v69 */ - eflags == 0x71 || /* v71 */ - eflags == 0x8071 || /* v71t */ - eflags == 0x73 /* v73 */ - ) { + switch (eflags) { + case 0x04: + return "v5"; + case 0x05: + return "v55"; + case 0x60: + return "v60"; + case 0x61: + return "v61"; + case 0x62: + return "v62"; + case 0x65: + return "v65"; + case 0x66: + return "v66"; + case 0x67: + case 0x8067: /* v67t */ + return "v67"; + case 0x68: + return "v68"; + case 0x69: + return "v69"; + case 0x71: + case 0x8071: /* v71t */ + return "v71"; + case 0x73: return "v73"; }