[DWARF][M68k] Add new DW_CC for the new M68kRTD calling convention
Add `DW_CC_M68kRTD` to model the new `llvm::CallingConv::M68kRTD`. Differential Revision: https://reviews.llvm.org/D152587
This commit is contained in:
parent
fd84b1a99d
commit
42b707e5b4
@ -1036,6 +1036,7 @@ HANDLE_DW_CC(0xc8, LLVM_Swift)
|
|||||||
HANDLE_DW_CC(0xc9, LLVM_PreserveMost)
|
HANDLE_DW_CC(0xc9, LLVM_PreserveMost)
|
||||||
HANDLE_DW_CC(0xca, LLVM_PreserveAll)
|
HANDLE_DW_CC(0xca, LLVM_PreserveAll)
|
||||||
HANDLE_DW_CC(0xcb, LLVM_X86RegCall)
|
HANDLE_DW_CC(0xcb, LLVM_X86RegCall)
|
||||||
|
HANDLE_DW_CC(0xcc, LLVM_M68kRTD)
|
||||||
// From GCC source code (include/dwarf2.h): This DW_CC_ value is not currently
|
// From GCC source code (include/dwarf2.h): This DW_CC_ value is not currently
|
||||||
// generated by any toolchain. It is used internally to GDB to indicate OpenCL
|
// generated by any toolchain. It is used internally to GDB to indicate OpenCL
|
||||||
// C functions that have been compiled with the IBM XL C for OpenCL compiler and
|
// C functions that have been compiled with the IBM XL C for OpenCL compiler and
|
||||||
|
@ -620,6 +620,9 @@ void DWARFTypePrinter::appendSubroutineNameAfter(
|
|||||||
case CallingConvention::DW_CC_LLVM_X86RegCall:
|
case CallingConvention::DW_CC_LLVM_X86RegCall:
|
||||||
OS << " __attribute__((regcall))";
|
OS << " __attribute__((regcall))";
|
||||||
break;
|
break;
|
||||||
|
case CallingConvention::DW_CC_LLVM_M68kRTD:
|
||||||
|
OS << " __attribute__((m68k_rtd))";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
21
llvm/test/DebugInfo/M68k/calling-convention.ll
Normal file
21
llvm/test/DebugInfo/M68k/calling-convention.ll
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
; RUN: llc --mtriple=m68k -filetype=obj %s -o %t
|
||||||
|
; RUN: llvm-dwarfdump -v %t | FileCheck %s
|
||||||
|
|
||||||
|
; CHECK-LABEL: DW_TAG_subprogram
|
||||||
|
; CHECK: DW_AT_calling_convention [DW_FORM_data1] (DW_CC_LLVM_M68kRTD)
|
||||||
|
define m68k_rtdcc void @foo() !dbg !3 {
|
||||||
|
entry:
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
!llvm.dbg.cu = !{!0}
|
||||||
|
!llvm.module.flags = !{!2}
|
||||||
|
|
||||||
|
!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 17.0.0 (https://github.com/llvm/llvm-project.git)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||||
|
!1 = !DIFile(filename: "foo.c", directory: "/path/to/file")
|
||||||
|
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
!3 = distinct !DISubprogram(name: "foo", scope: !4, file: !4, line: 4, type: !5, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !7)
|
||||||
|
!4 = !DIFile(filename: "./foo.c", directory: "/path/to/file")
|
||||||
|
!5 = !DISubroutineType(cc: DW_CC_LLVM_M68kRTD, types: !6)
|
||||||
|
!6 = !{null}
|
||||||
|
!7 = !{}
|
2
llvm/test/DebugInfo/M68k/lit.local.cfg
Normal file
2
llvm/test/DebugInfo/M68k/lit.local.cfg
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
if not "M68k" in config.root.targets:
|
||||||
|
config.unsupported = True
|
Loading…
x
Reference in New Issue
Block a user