diff options
author | Jonathan Chambers <joncham@gmail.com> | 2008-04-16 05:07:58 +0400 |
---|---|---|
committer | Jonathan Chambers <joncham@gmail.com> | 2008-04-16 05:07:58 +0400 |
commit | 7c84d2035194a9e55a4715954493ace501b596bb (patch) | |
tree | 0ce78695b4d0b5e613336d4165b4dae9e4cb7f5d /libgc/win32_threads.c | |
parent | a4221259660e9d93fcf9ca7286b1722992660706 (diff) |
2008-04-15 Jonathan Chambers <joncham@gmail.com>
* include/private/gcconfig.h: Backport GC7 code to support Win64.
* win32_threads.c: Backport GC7 code to support Win64.
svn path=/trunk/mono/; revision=100798
Diffstat (limited to 'libgc/win32_threads.c')
-rw-r--r-- | libgc/win32_threads.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libgc/win32_threads.c b/libgc/win32_threads.c index a9569c83f00..deb3eae4e0a 100644 --- a/libgc/win32_threads.c +++ b/libgc/win32_threads.c @@ -385,7 +385,11 @@ void GC_push_all_stacks() # define PUSH4(r1,r2,r3,r4) PUSH2(r1,r2), PUSH2(r3,r4) # if defined(I386) PUSH4(Edi,Esi,Ebx,Edx), PUSH2(Ecx,Eax), PUSH1(Ebp); - sp = (ptr_t)context.Esp; + sp = (ptr_t)context.Esp;
+# elif defined(X86_64)
+ PUSH4(Rax,Rcx,Rdx,Rbx); PUSH2(Rbp, Rsi); PUSH1(Rdi);
+ PUSH4(R8, R9, R10, R11); PUSH4(R12, R13, R14, R15);
+ sp = (ptr_t)context.Rsp; # elif defined(ARM32) PUSH4(R0,R1,R2,R3),PUSH4(R4,R5,R6,R7),PUSH4(R8,R9,R10,R11),PUSH1(R12); sp = (ptr_t)context.Sp; |