this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix clobbering i386 registers when making Linux syscalls

+13 -7
+13 -7
src/kernel/emulation/linux/base.c
··· 30 30 __builtin_unreachable(); 31 31 */ 32 32 __asm__("push %ebp\n" 33 + "push %ebx\n" 34 + "push %esi\n" 35 + "push %edi\n" 33 36 "call 1f\n" 34 37 "1:\n" 35 38 "pop %ebp\n" ··· 37 40 "push %ebp\n" 38 41 "push %ecx\n" 39 42 "push %edx\n" 40 - "movl 28+16(%esp), %eax\n" 41 - "movl 4+16(%esp), %ebx\n" 42 - "movl 8+16(%esp), %ecx\n" 43 - "movl 12+16(%esp), %edx\n" 44 - "movl 16+16(%esp), %esi\n" 45 - "movl 20+16(%esp), %edi\n" 43 + "movl 28+28(%esp), %eax\n" 44 + "movl 4+28(%esp), %ebx\n" 45 + "movl 8+28(%esp), %ecx\n" 46 + "movl 12+28(%esp), %edx\n" 47 + "movl 16+28(%esp), %esi\n" 48 + "movl 20+28(%esp), %edi\n" 46 49 "push %ebp\n" 47 - "movl 24+16(%esp), %ebp\n" 50 + "movl 24+28(%esp), %ebp\n" 48 51 "movl %ebp, -4(%esp)\n" 49 52 "movl %esp, %ebp\n" 50 53 "sysenter\n" 51 54 "2:\n" 55 + "pop %edi\n" 56 + "pop %esi\n" 57 + "pop %ebx\n" 52 58 "pop %ebp\n" 53 59 "ret" 54 60 );