diff options
author | root <root> | 2010-04-02 20:21:21 +0000 |
---|---|---|
committer | root <root> | 2010-04-02 20:21:21 +0000 |
commit | 4edadfae7be138a73961a8b78064464ff946cf15 (patch) | |
tree | b9eaa94e9216db0f3eb3f4ef08b35e6a4a602933 | |
parent | bd27a6a2c6fa93b10d3ee6484ad5b8da56a8bff4 (diff) |
*** empty log message ***rel-5_23
-rw-r--r-- | coro.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -117,6 +117,8 @@ trampoline (int sig) ".globl coro_transfer\n" ".type coro_transfer, @function\n" "coro_transfer:\n" + /* windows, of course, gives a shit on the amd64 ABI and uses different registers */ + /* http://blogs.msdn.com/freik/archive/2005/03/17/398200.aspx */ #if __amd64 #define NUM_SAVED 6 "\tpush %rbp\n" @@ -126,16 +128,16 @@ trampoline (int sig) "\tpush %r14\n" "\tpush %r15\n" #if CORO_WIN_TIB - "\tpush %fs:0x0\n" - "\tpush %fs:0x8\n" - "\tpush %fs:0xc\n" + "\tpush %gs:0x0\n" + "\tpush %gs:0x8\n" + "\tpush %gs:0xc\n" #endif "\tmov %rsp, (%rdi)\n" "\tmov (%rsi), %rsp\n" #if CORO_WIN_TIB - "\tpop %fs:0xc\n" - "\tpop %fs:0x8\n" - "\tpop %fs:0x0\n" + "\tpop %gs:0xc\n" + "\tpop %gs:0x8\n" + "\tpop %gs:0x0\n" #endif "\tpop %r15\n" "\tpop %r14\n" |