/* Assembler macros for i386. Copyright (C) 1991-2016 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 . */ #include #include /* For __GNUC_PREREQ. */ /* It is desirable that the names of PIC thunks match those used by GCC so that multiple copies are eliminated by the linker. Because GCC 4.6 and earlier use __i686 in the names, it is necessary to override that predefined macro. */ #if defined __i686 && defined __ASSEMBLER__ #undef __i686 #define __i686 __i686 #endif #ifdef __ASSEMBLER__ # define GET_PC_THUNK(reg) __x86.get_pc_thunk.reg #else # define GET_PC_THUNK_STR(reg) "__x86.get_pc_thunk." #reg #endif #ifdef __ASSEMBLER__ /* Syntactic details of assembler. */ /* ELF uses byte-counts for .align, most others use log2 of count of bytes. */ #define ALIGNARG(log2) 1<