Fix compilation on mingw64

This commit is contained in:
Thilo Schulz 2011-05-31 20:47:18 +00:00
parent bd8d60f55c
commit eedccac818
1 changed files with 11 additions and 6 deletions

View File

@ -1081,21 +1081,26 @@ int VM_CallCompiled(vm_t *vm, int *args)
opStack = PADP(stack, 4); opStack = PADP(stack, 4);
*opStack = 0xDEADBEEF; *opStack = 0xDEADBEEF;
opStackRet = 0;
__asm__ __volatile__ ( __asm__ __volatile__ (
" movq $0x0,%%rbx \r\n" \
" movl %5,%%edi \r\n" \
" movq %4,%%r8 \r\n" \ " movq %4,%%r8 \r\n" \
" movq %3,%%r9 \r\n" \ " movq %3,%%r9 \r\n" \
" movq %2,%%r10 \r\n" \ " movq %2,%%r10 \r\n" \
" push %%r15 \r\n" \
" push %%r14 \r\n" \
" push %%r13 \r\n" \
" push %%r12 \r\n" \
" subq $24, %%rsp # fix alignment as call pushes one value \r\n" \ " subq $24, %%rsp # fix alignment as call pushes one value \r\n" \
" callq *%%r10 \r\n" \ " callq *%%r10 \r\n" \
" addq $24, %%rsp \r\n" \ " addq $24, %%rsp \r\n" \
" movl %%edi, %0 \r\n" \ " pop %%r12 \r\n" \
" movq %%rbx, %1 \r\n" \ " pop %%r13 \r\n" \
: "=g" (programStack), "=g" (opStackRet) " pop %%r14 \r\n" \
" pop %%r15 \r\n"
: "+D" (programStack), "+b" (opStackRet)
: "g" (entryPoint), "g" (opStack), "g" (vm->dataBase), "g" (programStack) : "g" (entryPoint), "g" (opStack), "g" (vm->dataBase), "g" (programStack)
: "%rsi", "%rdi", "%rax", "%rbx", "%rcx", "%rdx", "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "%xmm0" : "%rsi", "%rax", "%rcx", "%rdx", "%r8", "%r9", "%r10", "%r11", "%xmm0"
); );
if(opStackRet != 1 || *opStack != 0xDEADBEEF) if(opStackRet != 1 || *opStack != 0xDEADBEEF)