]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/include/llvm/Support/MachO.h
Import the Cavium Simple Executive from the Cavium Octeon SDK. The Simple
[FreeBSD/FreeBSD.git] / contrib / llvm / include / llvm / Support / MachO.h
1 //===-- llvm/Support/MachO.h - The MachO file format ------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines manifest constants for the MachO object file format.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef LLVM_SUPPORT_MACHO_H
15 #define LLVM_SUPPORT_MACHO_H
16
17 // NOTE: The enums in this file are intentially named to be different than those
18 // in the headers in /usr/include/mach (on darwin systems) to avoid conflicts
19 // with those macros.
20 namespace llvm {
21   namespace MachO {
22     // Enums from <mach/machine.h>
23     enum {
24       // Capability bits used in the definition of cpu_type.
25       CPUArchMask = 0xff000000,   // Mask for architecture bits
26       CPUArchABI64 = 0x01000000,  // 64 bit ABI
27       
28       // Constants for the cputype field.
29       CPUTypeI386      = 7,
30       CPUTypeX86_64    = CPUTypeI386 | CPUArchABI64,
31       CPUTypeARM       = 12,
32       CPUTypeSPARC     = 14,
33       CPUTypePowerPC   = 18,
34       CPUTypePowerPC64 = CPUTypePowerPC | CPUArchABI64,
35
36
37       // Constants for the cpusubtype field.
38       
39       // X86
40       CPUSubType_I386_ALL    = 3,
41       CPUSubType_X86_64_ALL  = 3,
42       
43       // ARM
44       CPUSubType_ARM_ALL     = 0,
45       CPUSubType_ARM_V4T     = 5,
46       CPUSubType_ARM_V6      = 6,
47
48       // PowerPC
49       CPUSubType_POWERPC_ALL = 0,
50       
51       CPUSubType_SPARC_ALL   = 0
52     };
53   } // end namespace MachO
54 } // end namespace llvm
55
56 #endif