[all-commits] [llvm/llvm-project] f5e2ea: [AArch64] Add asm directives for the remaining SEH...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Thu Sep 3 01:12:29 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f5e2ea9a43221be9576056c4912796cf37331cd7
      https://github.com/llvm/llvm-project/commit/f5e2ea9a43221be9576056c4912796cf37331cd7
  Author: Martin Storsjö <martin at martin.st>
  Date:   2020-09-03 (Thu, 03 Sep 2020)

  Changed paths:
    M llvm/include/llvm/Support/Win64EH.h
    M llvm/lib/MC/MCWin64EH.cpp
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
    M llvm/test/MC/AArch64/seh.s
    M llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
    M llvm/tools/llvm-readobj/ARMWinEHPrinter.h

  Log Message:
  -----------
  [AArch64] Add asm directives for the remaining SEH unwind codes

Add support in llvm-readobj for displaying them and support in the
asm parsser, AArch64TargetStreamer and MCWin64EH for emitting them.

The directives for the remaining basic opcodes have names that
match the opcode in the documentation.

The directives for custom stack cases, that are named
MSFT_OP_TRAP_FRAME, MSFT_OP_MACHINE_FRAME, MSFT_OP_CONTEXT
and MSFT_OP_CLEAR_UNWOUND_TO_CALL, are given matching assembler
directive names that fit into the rest of the opcode naming;
.seh_trap_frame, .seh_context, .seh_clear_unwound_to_call

The opcode MSFT_OP_MACHINE_FRAME is mapped to the existing
opecode enum UOP_PushMachFrame that is used on x86_64, and also
uses the corresponding existing x86_64 directive name
.seh_pushframe.

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




More information about the All-commits mailing list