Skip to content

[Hexagon] Define Hexagon v93 ELF flags#196643

Open
quic-akaryaki wants to merge 1 commit intollvm:mainfrom
quic-akaryaki:hexagon-v93
Open

[Hexagon] Define Hexagon v93 ELF flags#196643
quic-akaryaki wants to merge 1 commit intollvm:mainfrom
quic-akaryaki:hexagon-v93

Conversation

@quic-akaryaki
Copy link
Copy Markdown
Contributor

No description provided.

@llvmorg-github-actions
Copy link
Copy Markdown

llvmorg-github-actions Bot commented May 8, 2026

@llvm/pr-subscribers-objectyaml

@llvm/pr-subscribers-llvm-binary-utilities

Author: Alexey Karyakin (quic-akaryaki)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/196643.diff

3 Files Affected:

  • (modified) llvm/include/llvm/BinaryFormat/ELF.h (+2)
  • (modified) llvm/lib/ObjectYAML/ELFYAML.cpp (+2)
  • (added) llvm/test/tools/obj2yaml/ELF/hexagon-eflags.yaml (+43)
diff --git a/llvm/include/llvm/BinaryFormat/ELF.h b/llvm/include/llvm/BinaryFormat/ELF.h
index 3fb5b51fb0a94..72cded68463a6 100644
--- a/llvm/include/llvm/BinaryFormat/ELF.h
+++ b/llvm/include/llvm/BinaryFormat/ELF.h
@@ -648,6 +648,7 @@ enum {
   EF_HEXAGON_ISA_V87 = 0x00000087,  // Hexagon V87 ISA
   EF_HEXAGON_ISA_V89 = 0x00000089,  // Hexagon V89 ISA
   EF_HEXAGON_ISA_V91 = 0x00000091,  // Hexagon V91 ISA
+  EF_HEXAGON_ISA_V93 = 0x00000093,  // Hexagon V93 ISA
   EF_HEXAGON_ISA = 0x000003ff,      // Hexagon V.. ISA
 
   // Tiny core flag, bit[15]
@@ -682,6 +683,7 @@ enum {
   EF_HEXAGON_MACH_V87 = EF_HEXAGON_ISA_V87,      // Hexagon V87
   EF_HEXAGON_MACH_V89 = EF_HEXAGON_ISA_V89,      // Hexagon V89
   EF_HEXAGON_MACH_V91 = EF_HEXAGON_ISA_V91,      // Hexagon V91
+  EF_HEXAGON_MACH_V93 = EF_HEXAGON_ISA_V93,      // Hexagon V93
 
   EF_HEXAGON_MACH = 0x0000ffff, // Hexagon V..
 };
diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp
index f61ad8089c71b..018193a3e4bca 100644
--- a/llvm/lib/ObjectYAML/ELFYAML.cpp
+++ b/llvm/lib/ObjectYAML/ELFYAML.cpp
@@ -507,6 +507,7 @@ void ScalarBitSetTraits<ELFYAML::ELF_EF>::bitset(IO &IO,
     BCaseMask(EF_HEXAGON_MACH_V87, EF_HEXAGON_MACH);
     BCaseMask(EF_HEXAGON_MACH_V89, EF_HEXAGON_MACH);
     BCaseMask(EF_HEXAGON_MACH_V91, EF_HEXAGON_MACH);
+    BCaseMask(EF_HEXAGON_MACH_V93, EF_HEXAGON_MACH);
     BCaseMask(EF_HEXAGON_ISA_V2, EF_HEXAGON_ISA);
     BCaseMask(EF_HEXAGON_ISA_V3, EF_HEXAGON_ISA);
     BCaseMask(EF_HEXAGON_ISA_V4, EF_HEXAGON_ISA);
@@ -531,6 +532,7 @@ void ScalarBitSetTraits<ELFYAML::ELF_EF>::bitset(IO &IO,
     BCaseMask(EF_HEXAGON_ISA_V87, EF_HEXAGON_ISA);
     BCaseMask(EF_HEXAGON_ISA_V89, EF_HEXAGON_ISA);
     BCaseMask(EF_HEXAGON_ISA_V91, EF_HEXAGON_ISA);
+    BCaseMask(EF_HEXAGON_ISA_V93, EF_HEXAGON_ISA);
     break;
   case ELF::EM_AVR:
     BCaseMask(EF_AVR_ARCH_AVR1, EF_AVR_ARCH_MASK);
diff --git a/llvm/test/tools/obj2yaml/ELF/hexagon-eflags.yaml b/llvm/test/tools/obj2yaml/ELF/hexagon-eflags.yaml
new file mode 100644
index 0000000000000..714c237956062
--- /dev/null
+++ b/llvm/test/tools/obj2yaml/ELF/hexagon-eflags.yaml
@@ -0,0 +1,43 @@
+--- !ELF
+FileHeader:
+  Class:           ELFCLASS32
+  Data:            ELFDATA2LSB
+  Type:            ET_EXEC
+  Machine:         EM_HEXAGON
+  Flags:           [ EF_HEXAGON_MACH_V68 ]
+
+# RUN: yaml2obj --docnum=1 %s | obj2yaml - | FileCheck %s --check-prefix=CHECK-V68
+# CHECK-V68: Flags: [ EF_HEXAGON_MACH_V68, EF_HEXAGON_ISA_V68 ]
+
+--- !ELF
+FileHeader:
+  Class:           ELFCLASS32
+  Data:            ELFDATA2LSB
+  Type:            ET_EXEC
+  Machine:         EM_HEXAGON
+  Flags:           [ EF_HEXAGON_MACH_V71T ]
+
+# RUN: yaml2obj --docnum=2 %s | obj2yaml - | FileCheck %s --check-prefix=CHECK-V71T
+# CHECK-V71T: Flags: [ EF_HEXAGON_MACH_V71T, EF_HEXAGON_ISA_V71 ]
+
+--- !ELF
+FileHeader:
+  Class:           ELFCLASS32
+  Data:            ELFDATA2LSB
+  Type:            ET_EXEC
+  Machine:         EM_HEXAGON
+  Flags:           [ EF_HEXAGON_MACH_V91 ]
+
+# RUN: yaml2obj --docnum=3 %s | obj2yaml - | FileCheck %s --check-prefix=CHECK-V91
+# CHECK-V91: Flags: [ EF_HEXAGON_MACH_V91, EF_HEXAGON_ISA_V91 ]
+
+--- !ELF
+FileHeader:
+  Class:           ELFCLASS32
+  Data:            ELFDATA2LSB
+  Type:            ET_EXEC
+  Machine:         EM_HEXAGON
+  Flags:           [ EF_HEXAGON_MACH_V93 ]
+
+# RUN: yaml2obj --docnum=4 %s | obj2yaml - | FileCheck %s --check-prefix=CHECK-V93
+# CHECK-V93: Flags: [ EF_HEXAGON_MACH_V93, EF_HEXAGON_ISA_V93 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant