x86-64: Move LP_SIZE definition to its own header

This way, we can define the pointer guard macros without including
<sysdep.h> on x86-64.  Other architectures will not have such an
inclusion dependency, and the implied header file inclusion would
create a porting hazard.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Florian Weimer 2022-10-18 17:00:07 +02:00
parent 7363a9a9a0
commit 246f37d6b1
4 changed files with 48 additions and 11 deletions

View File

@ -20,6 +20,7 @@
#define _X86_64_SYSDEP_H 1
#include <sysdeps/x86/sysdep.h>
#include <x86-lp_size.h>
#ifdef __ASSEMBLER__
@ -68,9 +69,6 @@ lose: \
# define JUMPTARGET(name) name
#endif
/* Long and pointer size in bytes. */
#define LP_SIZE 8
/* Instruction to operate on long and pointer. */
#define LP_OP(insn) insn##q
@ -137,9 +135,6 @@ lose: \
#else /* __ASSEMBLER__ */
/* Long and pointer size in bytes. */
#define LP_SIZE "8"
/* Instruction to operate on long and pointer. */
#define LP_OP(insn) #insn "q"

View File

@ -17,8 +17,8 @@
<https://www.gnu.org/licenses/>. */
#include <sysdeps/x86_64/sysdep.h>
#include <x86-lp_size.h>
#undef LP_SIZE
#undef LP_OP
#undef ASM_ADDR
@ -41,8 +41,6 @@
#ifdef __ASSEMBLER__
# define LP_SIZE 4
# define LP_OP(insn) insn##l
# define ASM_ADDR .long
@ -66,8 +64,6 @@
#else /* __ASSEMBLER__ */
# define LP_SIZE "4"
# define LP_OP(insn) #insn "l"
# define ASM_ADDR ".long"

View File

@ -0,0 +1,23 @@
/* Pointer size definition for x86-64 x32.
Copyright (C) 2022 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
#ifdef __ASSEMBLER__
# define LP_SIZE 4
#else
# define LP_SIZE "4"
#endif

View File

@ -0,0 +1,23 @@
/* Pointer size definition for x86-64.
Copyright (C) 2022 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
#ifdef __ASSEMBLER__
# define LP_SIZE 8
#else
# define LP_SIZE "8"
#endif