Browse Source

fix clobber of edx in i386 vsyscall asm

this function does not obey the normal calling convention; like a
syscall instruction, it's expected not to clobber any registers except
the return value. clobbering edx could break callers that were reusing
the value cached in edx after the syscall returns.
rs-1.0
Rich Felker 14 years ago
parent
commit
e9b885ee55
  1. 3
      src/internal/i386/syscall.s

3
src/internal/i386/syscall.s

@ -16,7 +16,8 @@ __vsyscall:
mov 12(%esp),%edi
push %eax
call 1f
2: pop %ebx
2: mov %ebx,%edx
pop %ebx
pop %ebx
pop %edi
ret

Loading…
Cancel
Save