Author: tkreuzer
Date: Sun Dec 30 19:02:54 2012
New Revision: 58060
URL:
http://svn.reactos.org/svn/reactos?rev=58060&view=rev
Log:
[PSEH3]
Tiny asm optimization.
Modified:
trunk/reactos/include/reactos/libs/pseh/pseh3.h
Modified: trunk/reactos/include/reactos/libs/pseh/pseh3.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/libs/pseh/…
==============================================================================
--- trunk/reactos/include/reactos/libs/pseh/pseh3.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/libs/pseh/pseh3.h [iso-8859-1] Sun Dec 30 19:02:54 2012
@@ -95,18 +95,20 @@
/* This is an asm wrapper around _SEH3$_RegisterFrame */
#define _SEH3$_RegisterFrame(_TrylevelFrame, _DataTable, _Target) \
- asm goto ("call __SEH3$_RegisterFrame\n" \
+ asm goto ("leal %0, %%ecx\n" \
+ "call __SEH3$_RegisterFrame\n" \
: \
- : "c" (_TrylevelFrame), "a" (_DataTable) \
- : "edx", "memory" \
+ : "m" (*(_TrylevelFrame)), "a" (_DataTable) \
+ : "ecx", "edx", "memory" \
: _Target)
/* This is an asm wrapper around _SEH3$_EnterTryLevel */
#define _SEH3$_RegisterTryLevel(_TrylevelFrame, _DataTable, _Target) \
- asm goto ("call __SEH3$_RegisterTryLevel\n" \
+ asm goto ("leal %0, %%ecx\n" \
+ "call __SEH3$_RegisterTryLevel\n" \
: \
- : "c" (_TrylevelFrame), "a" (_DataTable) \
- : "edx", "memory" \
+ : "m" (*(_TrylevelFrame)), "a" (_DataTable) \
+ : "ecx", "edx", "memory" \
: _Target)
/* On GCC the filter function is a nested function with __fastcall calling