Implemented wine_switch_to_stack for x86_64.
diff --git a/libs/wine/port.c b/libs/wine/port.c
index cc7c7ca..234f146 100644
--- a/libs/wine/port.c
+++ b/libs/wine/port.c
@@ -104,6 +104,15 @@
"mov $18,$30\n\t" /* stack */
"jsr $31,($0),0\n\t" /* call func */
"L1:\tbr $31,L1"); /* loop */
+#elif defined(__x86_64__) && defined(__GNUC__)
+__ASM_GLOBAL_FUNC( wine_switch_to_stack,
+ "movq %rdi,%rax\n\t" /* func */
+ "movq %rsi,%rdi\n\t" /* arg */
+ "andq $~15,%rdx\n\t" /* stack */
+ "movq %rdx,%rsp\n\t"
+ "xorq %rbp,%rbp\n\t"
+ "callq *%rax\n\t" /* call func */
+ "int $3");
#else
#error You must implement wine_switch_to_stack for your platform
#endif