95d751feac
This patch improves the handling of 64-bit parameters in syscalls on ARM. The ARM EABI mandates that 64-bit quantities be passed in even/odd register pairs, which requires special treatment. This allows us to simplify our implementations of pread() and pwrite() and remove the C stubs for pread64() and pwrite64(). Also add ftruncate64() to <unistd.h> Change-Id: I407e2fd223ba0093dd2d0b04c6152fadfc9ce3ef Bug 3107933
36 lines
658 B
ArmAsm
36 lines
658 B
ArmAsm
/* autogenerated by gensyscalls.py */
|
|
#include <sys/linux-syscalls.h>
|
|
|
|
.text
|
|
.type pread64, @function
|
|
.globl pread64
|
|
.align 4
|
|
|
|
pread64:
|
|
pushl %ebx
|
|
pushl %ecx
|
|
pushl %edx
|
|
pushl %esi
|
|
pushl %edi
|
|
mov 24(%esp), %ebx
|
|
mov 28(%esp), %ecx
|
|
mov 32(%esp), %edx
|
|
mov 36(%esp), %esi
|
|
mov 40(%esp), %edi
|
|
movl $__NR_pread64, %eax
|
|
int $0x80
|
|
cmpl $-129, %eax
|
|
jb 1f
|
|
negl %eax
|
|
pushl %eax
|
|
call __set_errno
|
|
addl $4, %esp
|
|
orl $-1, %eax
|
|
1:
|
|
popl %edi
|
|
popl %esi
|
|
popl %edx
|
|
popl %ecx
|
|
popl %ebx
|
|
ret
|