Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmangle.h
Go to the documentation of this file.
00001 /* 00002 mangle: support defines for preprocessed assembler 00003 00004 copyright 1995-2007 by the mpg123 project - free software under the terms of the LGPL 2.1 00005 see COPYING and AUTHORS files in distribution or http://mpg123.org 00006 00007 This once started out as mangle.h from MPlayer, but you can't really call it derived work... the small part that in principle stems from MPlayer also being not very special (once you decided to use such a header at all, it's quite obvious material). 00008 */ 00009 00010 #ifndef __MANGLE_H 00011 #define __MANGLE_H 00012 00013 #include "config.h" 00014 00015 #ifdef CCALIGN 00016 #define MOVUAPS movaps 00017 #else 00018 #define MOVUAPS movups 00019 #endif 00020 00021 #ifdef ASMALIGN_EXP 00022 #define ALIGN4 .align 2 00023 #define ALIGN8 .align 3 00024 #define ALIGN16 .align 4 00025 #define ALIGN32 .align 5 00026 #else 00027 #define ALIGN4 .align 4 00028 #define ALIGN8 .align 8 00029 #define ALIGN16 .align 16 00030 #define ALIGN32 .align 32 00031 #endif 00032 00033 #define MANGLE_MACROCAT_REALLY(a, b) a ## b 00034 #define MANGLE_MACROCAT(a, b) MANGLE_MACROCAT_REALLY(a, b) 00035 /* Feel free to add more to the list, eg. a.out IMO */ 00036 #if defined(__USER_LABEL_PREFIX__) 00037 #define ASM_NAME(a) MANGLE_MACROCAT(__USER_LABEL_PREFIX__,a) 00038 #define ASM_VALUE(a) MANGLE_MACROCAT($,ASM_NAME(a)) 00039 #elif defined(__CYGWIN__) || defined(_WIN32) && !defined (_WIN64) || defined(__OS2__) || \ 00040 (defined(__OpenBSD__) && !defined(__ELF__)) || defined(__APPLE__) 00041 #define ASM_NAME(a) MANGLE_MACROCAT(_,a) 00042 #define ASM_VALUE(a) MANGLE_MACROCAT($_,a) 00043 #else 00044 #define ASM_NAME(a) a 00045 #define ASM_VALUE(a) MANGLE_MACROCAT($,a) 00046 #endif 00047 00048 #if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__APPLE__) 00049 #define COMM(a,b,c) .comm a,b 00050 #else 00051 #define COMM(a,b,c) .comm a,b,c 00052 #endif 00053 /* more hacks for macosx; no .bss ... */ 00054 #ifdef __APPLE__ 00055 #define BSS .data 00056 #else 00057 #define BSS .bss 00058 #endif 00059 00060 /* Mark non-executable stack. 00061 It's mainly for GNU on Linux... who else does (not) like this? */ 00062 #if !defined(__SUNPRO_C) && defined(__linux__) && defined(__ELF__) 00063 #define NONEXEC_STACK .section .note.GNU-stack,"",%progbits 00064 #else 00065 #define NONEXEC_STACK 00066 #endif 00067 00068 #endif /* !__MANGLE_H */ 00069 Generated on Sun May 27 2012 04:33:12 for ReactOS by
1.7.6.1
|