summaryrefslogtreecommitdiff
path: root/po
diff options
context:
space:
mode:
authorPeter Johnson <peter@tortall.net>2007-02-12 03:48:53 +0000
committerPeter Johnson <peter@tortall.net>2007-02-12 03:48:53 +0000
commitef6fd9c8c04aa3276fdd4d9b4e98e39ad1854ea6 (patch)
treef3e584a5f4f206b88eed7708fd7c13fd3a2dfbd3 /po
parent1e76ae89cb306c135891622aa3bcc61a59c267d5 (diff)
downloadyasm-ef6fd9c8c04aa3276fdd4d9b4e98e39ad1854ea6.tar.gz
Add support for Win64 structured exception handling (aka .xdata and .pdata).
Requested by: Myria Chan, Brian Gladman, several others Helped by: Brian Gladman (format documentation pointers) This commit adds the necessary directives and some higher-level macros to make it easier to generate the .xdata and .pdata sections needed for structured exception handling on Win64. The overall construction mirrors MASM very closely, so it should be possible for near-direct translation of MASM code to Yasm; see for example objfmts/win64/tests/sce3.masm and objfmts/win64/tests/sce4.asm. This commit does *not* break generating these yourself (which you may want to do if you're a compiler). This commit adds special proc macros so the function layout will look like: proc_frame <procname> ... (frame setup and unwind directives) end_prologue (or alternatively [endprolog]) ... endproc_frame The "raw pseudo operations" (.directives) as described in MSDN (http://msdn2.microsoft.com/en-us/library/ms235231(VS.80).aspx) have been exactly mirrored in Yasm, as follows: [pushreg], [setframe], [allocstack], [savereg], [savexmm128], [pushframe], [endprolog] Note the [] are required. Additionally, the following macros have been implemented that MASM provides in ksamd64.inc, and as documented in MSDN (http://msdn2.microsoft.com/en-us/library/ms235217(VS.80).aspx): push_reg, rex_push_reg, push_eflags, rex_push_eflags, alloc_stack, save_reg, save_xmm128, push_frame, set_frame, end_prologue I'll next work on getting all of this documented in the user manual. svn path=/trunk/yasm/; revision=1762
Diffstat (limited to 'po')
-rw-r--r--po/POTFILES.in2
1 files changed, 2 insertions, 0 deletions
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 797ecffa..293affc3 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -41,11 +41,13 @@ modules/dbgfmts/stabs/stabs-dbgfmt.c
modules/listfmts/nasm/nasm-listfmt.c
modules/objfmts/bin/bin-objfmt.c
modules/objfmts/coff/coff-objfmt.c
+modules/objfmts/coff/win64-except.c
modules/objfmts/dbg/dbg-objfmt.c
modules/objfmts/elf/elf-objfmt.c
modules/objfmts/elf/elf-x86-amd64.c
modules/objfmts/elf/elf-x86-x86.c
modules/objfmts/elf/elf.c
+modules/objfmts/macho/macho-objfmt.c
modules/objfmts/rdf/rdf-objfmt.c
modules/objfmts/xdf/xdf-objfmt.c
modules/parsers/gas/gas-parse.c