fix OP_BLOCK_COPY alignment for win64 (patch by Marcus Meissner)

This commit is contained in:
Ludwig Nussel 2010-05-17 08:59:53 +00:00
parent 368a3be2a6
commit 2950bb98ea
1 changed files with 2 additions and 0 deletions

View File

@ -757,12 +757,14 @@ emit_do_syscall:
emit("push %%r8"); emit("push %%r8");
emit("push %%r9"); emit("push %%r9");
emit("push %%r10"); emit("push %%r10");
emit("push %%r10");
emit("movl 4(%%rsi), %%edi"); // 1st argument dest emit("movl 4(%%rsi), %%edi"); // 1st argument dest
emit("movl 8(%%rsi), %%esi"); // 2nd argument src emit("movl 8(%%rsi), %%esi"); // 2nd argument src
emit("movl $%d, %%edx", iarg); // 3rd argument count emit("movl $%d, %%edx", iarg); // 3rd argument count
emit("movq $%"PRIu64", %%rax", (uint64_t)block_copy_vm); emit("movq $%"PRIu64", %%rax", (uint64_t)block_copy_vm);
emit("callq *%%rax"); emit("callq *%%rax");
emit("pop %%r10"); emit("pop %%r10");
emit("pop %%r10");
emit("pop %%r9"); emit("pop %%r9");
emit("pop %%r8"); emit("pop %%r8");
emit("pop %%rdi"); emit("pop %%rdi");