]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Arm/ProcessorBind.h
Update MdePkg and EdkCompatibilityPkg INT8 definition to be typedef signed char to...
[mirror_edk2.git] / MdePkg / Include / Arm / ProcessorBind.h
index 810bf03be0db0318ae4735f999318f8b7dc2cd60..f5a839de0d80ca22394263b08f99db55998454e1 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Processor or Compiler specific defines and types for ARM.\r
 \r
-  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
   Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
   This program and the accompanying materials                          \r
   are licensed and made available under the terms and conditions of the BSD License         \r
@@ -42,7 +42,7 @@
   typedef unsigned char       BOOLEAN;\r
   typedef unsigned char       UINT8;\r
   typedef char                CHAR8;\r
-  typedef char                INT8;\r
+  typedef signed char         INT8;\r
 #else\r
   //\r
   // Assume standard ARM alignment. \r
@@ -58,7 +58,7 @@
   typedef unsigned char       BOOLEAN;\r
   typedef unsigned char       UINT8;\r
   typedef char                CHAR8;\r
-  typedef char                INT8;\r
+  typedef signed char         INT8;\r
 #endif\r
 \r
 ///\r
@@ -110,6 +110,34 @@ typedef INT32   INTN;
   /// Define this macro to unify the usage.\r
   ///\r
   #define ASM_GLOBAL .globl\r
+\r
+  #if !defined(__APPLE__)\r
+    ///\r
+    /// ARM EABI defines that the linker should not manipulate call relocations\r
+    /// (do bl/blx conversion) unless the target symbol has function type.\r
+    /// CodeSourcery 2010.09 started requiring the .type to function properly\r
+    ///\r
+    #define INTERWORK_FUNC(func__)   .type ASM_PFX(func__), %function\r
+\r
+    #define GCC_ASM_EXPORT(func__)  \\r
+             .global  _CONCATENATE (__USER_LABEL_PREFIX__, func__)    ;\\r
+             .type ASM_PFX(func__), %function  \r
+\r
+    #define GCC_ASM_IMPORT(func__)  \\r
+             .extern  _CONCATENATE (__USER_LABEL_PREFIX__, func__)\r
+             \r
+  #else\r
+    //\r
+    // .type not supported by Apple Xcode tools \r
+    //\r
+    #define INTERWORK_FUNC(func__)  \r
+\r
+    #define GCC_ASM_EXPORT(func__)  \\r
+             .globl  _CONCATENATE (__USER_LABEL_PREFIX__, func__)    \\r
+  \r
+    #define GCC_ASM_IMPORT(name)  \r
+\r
+  #endif\r
 #endif\r
 \r
 /**\r
@@ -125,3 +153,5 @@ typedef INT32   INTN;
 #define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)\r
 \r
 #endif\r
+\r
+\r