ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mangle.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.