[llvm] f94fb26 - [X86] Add DwarfRegNums for segment registers

Alex Brachet via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 28 09:10:15 PST 2023


Author: Alex Brachet
Date: 2023-02-28T17:09:33Z
New Revision: f94fb2674805d4b14d8c1a3a604eae25576cf5ca

URL: https://github.com/llvm/llvm-project/commit/f94fb2674805d4b14d8c1a3a604eae25576cf5ca
DIFF: https://github.com/llvm/llvm-project/commit/f94fb2674805d4b14d8c1a3a604eae25576cf5ca.diff

LOG: [X86] Add DwarfRegNums for segment registers

Differential Revision: https://reviews.llvm.org/D144900

Added: 
    llvm/test/MC/X86/dwarf-segment-register.s

Modified: 
    llvm/lib/Target/X86/X86RegisterInfo.td

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86RegisterInfo.td b/llvm/lib/Target/X86/X86RegisterInfo.td
index aa4b83a6aaee4..4ef7150122ca8 100644
--- a/llvm/lib/Target/X86/X86RegisterInfo.td
+++ b/llvm/lib/Target/X86/X86RegisterInfo.td
@@ -320,12 +320,12 @@ def DF : X86Reg<"dirflag", 0>;
 
 
 // Segment registers
-def CS : X86Reg<"cs", 1>;
-def DS : X86Reg<"ds", 3>;
-def SS : X86Reg<"ss", 2>;
-def ES : X86Reg<"es", 0>;
-def FS : X86Reg<"fs", 4>;
-def GS : X86Reg<"gs", 5>;
+def CS : X86Reg<"cs", 1>, DwarfRegNum<[51, -2, 41]>;
+def DS : X86Reg<"ds", 3>, DwarfRegNum<[53, -2, 43]>;
+def SS : X86Reg<"ss", 2>, DwarfRegNum<[52, -2, 42]>;
+def ES : X86Reg<"es", 0>, DwarfRegNum<[50, -2, 40]>;
+def FS : X86Reg<"fs", 4>, DwarfRegNum<[54, -2, 44]>;
+def GS : X86Reg<"gs", 5>, DwarfRegNum<[55, -2, 45]>;
 
 def FS_BASE : X86Reg<"fs.base", 0>, DwarfRegNum<[58, -2, -2]>;
 def GS_BASE : X86Reg<"gs.base", 0>, DwarfRegNum<[59, -2, -2]>;

diff  --git a/llvm/test/MC/X86/dwarf-segment-register.s b/llvm/test/MC/X86/dwarf-segment-register.s
new file mode 100644
index 0000000000000..a685768074706
--- /dev/null
+++ b/llvm/test/MC/X86/dwarf-segment-register.s
@@ -0,0 +1,37 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t.64
+// RUN: llvm-objdump --dwarf=frames %t.64 | FileCheck %s --check-prefixes=64,CHECK
+// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o %t.32
+// RUN: llvm-objdump --dwarf=frames %t.32 | FileCheck %s --check-prefixes=32,CHECK
+
+.cfi_startproc
+.cfi_offset %cs, -40
+.cfi_offset %ds, -32
+.cfi_offset %ss, -24
+.cfi_offset %es, -16
+.cfi_offset %fs, -8
+.cfi_offset %gs, 0
+.cfi_endproc
+
+// 64: reg51
+// 32: reg41
+// CHECK-SAME: -40
+
+// 64: reg53
+// 32: reg43
+// CHECK-SAME: -32
+
+// 64: reg52
+// 32: reg42
+// CHECK-SAME: -24
+
+// 64: reg50
+// 32: reg40
+// CHECK-SAME: -16
+
+// 64: reg54
+// 32: reg44
+// CHECK-SAME: -8
+
+// 64: reg55
+// 32: reg45
+// CHECK-SAME: 0


        


More information about the llvm-commits mailing list