PATCH [2/n]: Add x32 sysdep.h file
Andreas Jaeger
aj@suse.com
Thu Mar 15 20:53:00 GMT 2012
On 03/15/2012 07:31 PM, H.J. Lu wrote:
> Hi,
>
> This patch does:
>
> 1. Move all VSYSCALL_ADDR_xxx to a single location x86_64/sysdep.h.
> 2. Remove the `q' suffix from xor/rol instructions in x86_64 PTR_MANGLE
> and PTR_DEMANGLE so that they work for both 32bit registers under x32
> and 64bit registers under x86_64.
> 3. Add LP_SIZE, MOVE_LP, ADD_LP, SUB_LP, CMP_LP and ASM_ADDR to support
> both 32bit and 64bit long/pointer sizes in assembly codes.
> 4. Add RXX_LP for registers used as longs and pointers in assembly
> codes.
> 5. Add x32 system call macros to support 32bit error returns in system
> calls. For a few system calls which returns 64bit integer,
> SYSCALL_RETURN_INT64 is used to set up properly 64bit error return values.
I agree with Roland: Please split this in separate pieces.
Just one thing I noticed:
> [...]
> diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
> index c9c4dbd..dc9c5fe 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
> +++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
> @@ -189,6 +189,11 @@
> # define DOARGS_5 DOARGS_4
> # define DOARGS_6 DOARGS_5
>
> +/* For the calculation see asm/vsyscall.h. */
> +# define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000
> +# define VSYSCALL_ADDR_vtime 0xffffffffff600400
> +# define VSYSCALL_ADDR_vgetcpu 0xffffffffff600800
> +
> #else /* !__ASSEMBLER__ */
> /* Define a macro which expands inline into the wrapper code for a system
> call. */
> @@ -334,6 +339,11 @@
> LOAD_REGS_5
> # define ASM_ARGS_6 ASM_ARGS_5, "r" (_a6)
>
> +/* For the calculation see asm/vsyscall.h. */
> +# define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul
> +# define VSYSCALL_ADDR_vgetcpu 0xffffffffff600800ul
> +# define VSYSCALL_ADDR_vtime 0xffffffffff600400ul
Why defining them twice? Is that really needed?
If needed: Please use the same order.
--
Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126
More information about the Libc-alpha
mailing list