Emit register names in cfi assembly directives
Update .cfi_undefined, .cfi_register, and .cfi_return_column to
print symbolic register arguments.
Differential Revision: https://reviews.llvm.org/D74914
diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp
index b528a6e..9281584 100644
--- a/llvm/lib/MC/MCAsmStreamer.cpp
+++ b/llvm/lib/MC/MCAsmStreamer.cpp
@@ -1682,13 +1682,17 @@
void MCAsmStreamer::emitCFIUndefined(int64_t Register) {
MCStreamer::emitCFIUndefined(Register);
- OS << "\t.cfi_undefined " << Register;
+ OS << "\t.cfi_undefined ";
+ EmitRegisterName(Register);
EmitEOL();
}
void MCAsmStreamer::emitCFIRegister(int64_t Register1, int64_t Register2) {
MCStreamer::emitCFIRegister(Register1, Register2);
- OS << "\t.cfi_register " << Register1 << ", " << Register2;
+ OS << "\t.cfi_register ";
+ EmitRegisterName(Register1);
+ OS << ", ";
+ EmitRegisterName(Register2);
EmitEOL();
}
@@ -1706,7 +1710,8 @@
void MCAsmStreamer::emitCFIReturnColumn(int64_t Register) {
MCStreamer::emitCFIReturnColumn(Register);
- OS << "\t.cfi_return_column " << Register;
+ OS << "\t.cfi_return_column ";
+ EmitRegisterName(Register);
EmitEOL();
}
diff --git a/llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll b/llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll
index 274e99b..8d6e9ca 100644
--- a/llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll
+++ b/llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll
@@ -12,7 +12,7 @@
; V8-NEXT: save %sp, -96, %sp
; V8-NEXT: .cfi_def_cfa_register %fp
; V8-NEXT: .cfi_window_save
-; V8-NEXT: .cfi_register 15, 31
+; V8-NEXT: .cfi_register %o7, %i7
; V8-NEXT: add %i0, 7, %i0
; V8-NEXT: and %i0, -8, %i0
; V8-NEXT: sub %sp, %i0, %i0
@@ -39,7 +39,7 @@
; SPARC64-NEXT: save %sp, -128, %sp
; SPARC64-NEXT: .cfi_def_cfa_register %fp
; SPARC64-NEXT: .cfi_window_save
-; SPARC64-NEXT: .cfi_register 15, 31
+; SPARC64-NEXT: .cfi_register %o7, %i7
; SPARC64-NEXT: srl %i0, 0, %i0
; SPARC64-NEXT: add %i0, 15, %i0
; SPARC64-NEXT: sethi 4194303, %i1
diff --git a/llvm/test/CodeGen/SPARC/exception.ll b/llvm/test/CodeGen/SPARC/exception.ll
index 42a9c1f..3783cbd 100644
--- a/llvm/test/CodeGen/SPARC/exception.ll
+++ b/llvm/test/CodeGen/SPARC/exception.ll
@@ -18,7 +18,7 @@
; V8ABS: .cfi_lsda 0,
; V8ABS: .cfi_def_cfa_register {{30|%fp}}
; V8ABS: .cfi_window_save
-; V8ABS: .cfi_register 15, 31
+; V8ABS: .cfi_register %o7, %i7
; V8ABS: call __cxa_throw
; V8ABS: call __cxa_throw
@@ -37,7 +37,7 @@
; V8PIC: .cfi_lsda 27,
; V8PIC: .cfi_def_cfa_register {{30|%fp}}
; V8PIC: .cfi_window_save
-; V8PIC: .cfi_register 15, 31
+; V8PIC: .cfi_register %o7, %i7
; V8PIC: .section .gcc_except_table
; V8PIC-NOT: .section
; V8PIC: .word %r_disp32(.L_ZTIi.DW.stub)
@@ -52,7 +52,7 @@
; V9ABS: .cfi_lsda 27,
; V9ABS: .cfi_def_cfa_register {{30|%fp}}
; V9ABS: .cfi_window_save
-; V9ABS: .cfi_register 15, 31
+; V9ABS: .cfi_register %o7, %i7
; V9ABS: .section .gcc_except_table
; V9ABS-NOT: .section
; V9ABS: .xword _ZTIi
@@ -63,7 +63,7 @@
; V9PIC: .cfi_lsda 27,
; V9PIC: .cfi_def_cfa_register {{30|%fp}}
; V9PIC: .cfi_window_save
-; V9PIC: .cfi_register 15, 31
+; V9PIC: .cfi_register %o7, %i7
; V9PIC: .section .gcc_except_table
; V9PIC-NOT: .section
; V9PIC: .word %r_disp32(.L_ZTIi.DW.stub)
diff --git a/llvm/test/CodeGen/SPARC/reserved-regs.ll b/llvm/test/CodeGen/SPARC/reserved-regs.ll
index c5a124f..ec62905 100644
--- a/llvm/test/CodeGen/SPARC/reserved-regs.ll
+++ b/llvm/test/CodeGen/SPARC/reserved-regs.ll
@@ -7,6 +7,7 @@
; CHECK-LABEL: use_all_i32_regs:
; CHECK: save %sp
+; CHECK: .cfi_register %o7, %i7
; CHECK-NOT: %g0
; CHECK-NOT: %g1
; CHECK-NOT: %g5
@@ -88,6 +89,7 @@
; CHECK-LABEL: use_all_i64_regs:
; CHECK: save %sp
+; CHECK: .cfi_register %o7, %i7
; CHECK-NOT: %g0
; CHECK-NOT: %g1
; CHECK-NOT: %g4
diff --git a/llvm/test/CodeGen/SPARC/umulo-128-legalisation-lowering.ll b/llvm/test/CodeGen/SPARC/umulo-128-legalisation-lowering.ll
index c1577ae..66fcc45 100644
--- a/llvm/test/CodeGen/SPARC/umulo-128-legalisation-lowering.ll
+++ b/llvm/test/CodeGen/SPARC/umulo-128-legalisation-lowering.ll
@@ -9,7 +9,7 @@
; SPARC-NEXT: save %sp, -128, %sp
; SPARC-NEXT: .cfi_def_cfa_register %fp
; SPARC-NEXT: .cfi_window_save
-; SPARC-NEXT: .cfi_register 15, 31
+; SPARC-NEXT: .cfi_register %o7, %i7
; SPARC-NEXT: ld [%fp+92], %l3
; SPARC-NEXT: ld [%fp+96], %g2
; SPARC-NEXT: umul %i2, %i5, %g3
@@ -195,7 +195,7 @@
; SPARC64-NEXT: save %sp, -176, %sp
; SPARC64-NEXT: .cfi_def_cfa_register %fp
; SPARC64-NEXT: .cfi_window_save
-; SPARC64-NEXT: .cfi_register 15, 31
+; SPARC64-NEXT: .cfi_register %o7, %i7
; SPARC64-NEXT: srax %i2, 63, %o0
; SPARC64-NEXT: srax %i1, 63, %o2
; SPARC64-NEXT: mov %i2, %o1
diff --git a/llvm/test/MC/X86/return-column.s b/llvm/test/MC/X86/return-column.s
index eec886a..37c5134 100644
--- a/llvm/test/MC/X86/return-column.s
+++ b/llvm/test/MC/X86/return-column.s
@@ -30,7 +30,7 @@
// CHECK-ASM-ROUNDTRIP-LABEL: f:
// CHECK-ASM-ROUNDTRIP: .cfi_startproc
-// CHECK-ASM-ROUNDTRIP-NEXT: .cfi_return_column 0
+// CHECK-ASM-ROUNDTRIP-NEXT: .cfi_return_column %eax
// CHECK-ASM-ROUNDTRIP: .cfi_endproc
// CHECK-EH_FRAME: 00000000 00000014 00000000 CIE