Author: ian
Date: Thu Dec 25 16:49:33 2014
New Revision: 276204
URL: https://svnweb.freebsd.org/changeset/base/276204

Log:
  Create 'L' variants of all the ENTRY macros for file-static/local symbols.
  
  If it seems like this is getting out of hand, I quite agree.  I wonder if
  it's safe, here in the 21st century, to lose the distinction between C and
  ASM symbols?

Modified:
  head/sys/arm/include/asm.h

Modified: head/sys/arm/include/asm.h
==============================================================================
--- head/sys/arm/include/asm.h  Thu Dec 25 16:43:15 2014        (r276203)
+++ head/sys/arm/include/asm.h  Thu Dec 25 16:49:33 2014        (r276204)
@@ -75,6 +75,7 @@
 
 /*
  * EENTRY()/EEND() mark "extra" entry/exit points from a function.
+ * LEENTRY()/LEEND() are the the same for local symbols.
  * The unwind info cannot handle the concept of a nested function, or a 
function
  * with multiple .fnstart directives, but some of our assembler code is written
  * with multiple labels to allow entry at several points.  The EENTRY() macro
@@ -84,11 +85,15 @@
  */
 #define        GLOBAL(x)       .global x
 
-#define        _EENTRY(x)      GLOBAL(x); .type x,_ASM_TYPE_FUNCTION; x:
-#define        _EEND(x)        /* nothing */
-
-#define        _ENTRY(x)       .text; _ALIGN_TEXT; _EENTRY(x) _FNSTART
-#define        _END(x)         .size x, . - x; _FNEND
+#define        _LEENTRY(x)     .type x,_ASM_TYPE_FUNCTION; x:
+#define        _LEEND(x)       /* nothing */
+#define        _EENTRY(x)      GLOBAL(x); _LEENTRY(x)
+#define        _EEND(x)        _LEEND(x)
+
+#define        _LENTRY(x)      .text; _ALIGN_TEXT; _LEENTRY(x); _FNSTART
+#define        _LEND(x)        .size x, . - x; _FNEND
+#define        _ENTRY(x)       .text; _ALIGN_TEXT; _EENTRY(x); _FNSTART
+#define        _END(x)         _LEND(x)
 
 #define        ENTRY(y)        _ENTRY(_C_LABEL(y)); _PROF_PROLOGUE
 #define        EENTRY(y)       _EENTRY(_C_LABEL(y));
@@ -97,11 +102,17 @@
 #define        END(y)          _END(_C_LABEL(y))
 #define        EEND(y)         _EEND(_C_LABEL(y))
 #define        ASENTRY(y)      _ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
+#define        ASLENTRY(y)     _LENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
 #define        ASEENTRY(y)     _EENTRY(_ASM_LABEL(y));
+#define        ASLEENTRY(y)    _LEENTRY(_ASM_LABEL(y));
 #define        ASENTRY_NP(y)   _ENTRY(_ASM_LABEL(y))
+#define        ASLENTRY_NP(y)  _LENTRY(_ASM_LABEL(y))
 #define        ASEENTRY_NP(y)  _EENTRY(_ASM_LABEL(y))
+#define        ASLEENTRY_NP(y) _LEENTRY(_ASM_LABEL(y))
 #define        ASEND(y)        _END(_ASM_LABEL(y))
+#define        ASLEND(y)       _LEND(_ASM_LABEL(y))
 #define        ASEEND(y)       _EEND(_ASM_LABEL(y))
+#define        ASLEEND(y)      _LEEND(_ASM_LABEL(y))
 
 #define        ASMSTR          .asciz
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to