[PATCH] D86889: [AArch64] Add asm directives for the remaining SEH unwind codes

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 31 12:43:26 PDT 2020


mstorsjo created this revision.
mstorsjo added reviewers: efriedma, ssijaric, TomTan.
Herald added subscribers: danielkiss, rupprecht, hiraditya, kristof.beyls.
Herald added a reviewer: jhenderson.
Herald added a project: LLVM.
mstorsjo requested review of this revision.
Herald added a subscriber: MaskRay.

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. TODO: Or should it be given a name that is consistent with the other ones, e.g. .seh_machine_frame?


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D86889

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D86889.289008.patch
Type: text/x-patch
Size: 22871 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200831/16cae883/attachment.bin>


More information about the llvm-commits mailing list