Return proper Hexagon CPU version from get_elf_cpu_model
Co-authored-by: Matheus Tavares Bernardino <[email protected]>
Co-authored-by: Brian Cain <[email protected]>
Signed-off-by: Taylor Simpson <[email protected]>
---
linux-user/hexagon/elfload.c | 43 ++++++++++++++++++++++--------------
1 file changed, 26 insertions(+), 17 deletions(-)
diff --git a/linux-user/hexagon/elfload.c b/linux-user/hexagon/elfload.c
index d8b545032a..39b0201814 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";
}
--
2.43.0