libmpg123 1.15.4
git-svn-id: svn://kolibrios.org@3960 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#define __MANGLE_H
|
||||
|
||||
#include "config.h"
|
||||
#include "intsym.h"
|
||||
|
||||
#ifdef CCALIGN
|
||||
#define MOVUAPS movaps
|
||||
@@ -18,26 +19,52 @@
|
||||
#define MOVUAPS movups
|
||||
#endif
|
||||
|
||||
/*
|
||||
ALIGNX: align to X bytes
|
||||
This differs per compiler/platform in taking the byte count or an exponent for base 2.
|
||||
A way out is balign, if the assembler supports it (gas extension).
|
||||
*/
|
||||
|
||||
#ifdef ASMALIGN_BALIGN
|
||||
|
||||
#define ALIGN4 .balign 4
|
||||
#define ALIGN8 .balign 8
|
||||
#define ALIGN16 .balign 16
|
||||
#define ALIGN32 .balign 32
|
||||
|
||||
#else
|
||||
|
||||
#ifdef ASMALIGN_EXP
|
||||
#define ALIGN4 .align 2
|
||||
#define ALIGN8 .align 3
|
||||
#define ALIGN16 .align 4
|
||||
#define ALIGN32 .align 5
|
||||
#else
|
||||
#ifdef ASMALIGN_BYTE
|
||||
#define ALIGN4 .align 4
|
||||
#define ALIGN8 .align 8
|
||||
#define ALIGN16 .align 16
|
||||
#define ALIGN32 .align 32
|
||||
#else
|
||||
#error "Dunno how assembler alignment works. Please specify."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define MANGLE_MACROCAT_REALLY(a, b) a ## b
|
||||
#define MANGLE_MACROCAT(a, b) MANGLE_MACROCAT_REALLY(a, b)
|
||||
/* Feel free to add more to the list, eg. a.out IMO */
|
||||
#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__OS2__) || defined(_MSC_VER) || \
|
||||
#if defined(__USER_LABEL_PREFIX__)
|
||||
#define ASM_NAME(a) MANGLE_MACROCAT(__USER_LABEL_PREFIX__,a)
|
||||
#define ASM_VALUE(a) MANGLE_MACROCAT($,ASM_NAME(a))
|
||||
#elif defined(__CYGWIN__) || defined(_WIN32) && !defined (_WIN64) || defined(__OS2__) || \
|
||||
(defined(__OpenBSD__) && !defined(__ELF__)) || defined(__APPLE__)
|
||||
#define ASM_NAME(a) _##a
|
||||
#define ASM_VALUE(a) $_##a
|
||||
#define ASM_NAME(a) MANGLE_MACROCAT(_,a)
|
||||
#define ASM_VALUE(a) MANGLE_MACROCAT($_,a)
|
||||
#else
|
||||
#define ASM_NAME(a) a
|
||||
#define ASM_VALUE(a) $##a
|
||||
#define ASM_VALUE(a) MANGLE_MACROCAT($,a)
|
||||
#endif
|
||||
|
||||
#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__APPLE__)
|
||||
@@ -51,5 +78,14 @@
|
||||
#else
|
||||
#define BSS .bss
|
||||
#endif
|
||||
|
||||
/* Mark non-executable stack.
|
||||
It's mainly for GNU on Linux... who else does (not) like this? */
|
||||
#if !defined(__SUNPRO_C) && defined(__linux__) && defined(__ELF__)
|
||||
#define NONEXEC_STACK .section .note.GNU-stack,"",%progbits
|
||||
#else
|
||||
#define NONEXEC_STACK
|
||||
#endif
|
||||
|
||||
#endif /* !__MANGLE_H */
|
||||
|
||||
|
Reference in New Issue
Block a user