]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/mips/sys/asm.h
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / mips / sys / asm.h
index 347d738f70c6d92331aa6469c3cb230ac20bdd3b..3373b850a112f6a076f5911ff6b0c86f1ecc3290 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (C) 1997, 1998, 2002, 2003, 2004, 2005, 2012
-   Free Software Foundation, Inc.
+/* Copyright (C) 1997-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ralf Baechle <ralf@gnu.org>.
 
 # define CAT(str1,str2) __CAT(str1,str2)
 #endif
 
+/* Redefined as nonempty in the internal header.  */
+#define __mips_cfi_startproc /* Empty.  */
+#define __mips_cfi_endproc /* Empty.  */
+
 /*
  * Macros to handle different pointer/register sizes for 32/64-bit code
  *
@@ -148,7 +151,8 @@ l:                                                  \
                .align  2;                              \
                .type   symbol,@function;               \
                .ent    symbol,0;                       \
-symbol:                .frame  sp,0,ra
+symbol:                .frame  sp,0,ra;                        \
+               __mips_cfi_startproc
 
 /*
  * NESTED - declare nested routine entry point
@@ -158,13 +162,15 @@ symbol:           .frame  sp,0,ra
                .align  2;                              \
                .type   symbol,@function;               \
                .ent    symbol,0;                       \
-symbol:                .frame  sp, framesize, rpc
+symbol:                .frame  sp, framesize, rpc;             \
+               __mips_cfi_startproc
 
 /*
  * END - mark end of function
  */
 #ifndef END
 # define END(function)                                   \
+               __mips_cfi_endproc;                     \
                .end    function;                       \
                .size   function,.-function
 #endif
@@ -174,7 +180,7 @@ symbol:             .frame  sp, framesize, rpc
  */
 #define        EXPORT(symbol)                                  \
                .globl  symbol;                         \
-symbol:
+symbol:                __mips_cfi_startproc
 
 /*
  * ABS - export absolute symbol
@@ -233,8 +239,8 @@ symbol              =       value
 # define PREFX(hint,addr)                                \
                prefx   hint,addr
 #else
-# define PREF
-# define PREFX
+# define PREF(hint,addr)
+# define PREFX(hint,addr)
 #endif
 
 /*
@@ -320,7 +326,7 @@ symbol              =       value
 # define INT_ADDI      addi
 # define INT_ADDU      addu
 # define INT_ADDIU     addiu
-# define INT_SUB       add
+# define INT_SUB       sub
 # define INT_SUBI      subi
 # define INT_SUBU      subu
 # define INT_SUBIU     subu
@@ -333,7 +339,7 @@ symbol              =       value
 # define INT_ADDI      daddi
 # define INT_ADDU      daddu
 # define INT_ADDIU     daddiu
-# define INT_SUB       dadd
+# define INT_SUB       dsub
 # define INT_SUBI      dsubi
 # define INT_SUBU      dsubu
 # define INT_SUBIU     dsubu
@@ -349,7 +355,7 @@ symbol              =       value
 # define LONG_ADDI     addi
 # define LONG_ADDU     addu
 # define LONG_ADDIU    addiu
-# define LONG_SUB      add
+# define LONG_SUB      sub
 # define LONG_SUBI     subi
 # define LONG_SUBU     subu
 # define LONG_SUBIU    subu
@@ -368,7 +374,7 @@ symbol              =       value
 # define LONG_ADDI     daddi
 # define LONG_ADDU     daddu
 # define LONG_ADDIU    daddiu
-# define LONG_SUB      dadd
+# define LONG_SUB      dsub
 # define LONG_SUBI     dsubi
 # define LONG_SUBU     dsubu
 # define LONG_SUBIU    dsubu
@@ -390,7 +396,7 @@ symbol              =       value
 # define PTR_ADDI      addi
 # define PTR_ADDU      addu
 # define PTR_ADDIU     addiu
-# define PTR_SUB       add
+# define PTR_SUB       sub
 # define PTR_SUBI      subi
 # define PTR_SUBU      subu
 # define PTR_SUBIU     subu
@@ -410,12 +416,19 @@ symbol            =       value
 #if _MIPS_SIM == _ABIN32
 # define PTR_ADD       add
 # define PTR_ADDI      addi
+# define PTR_SUB       sub
+# define PTR_SUBI      subi
+#if !defined __mips_isa_rev || __mips_isa_rev < 6
 # define PTR_ADDU      add /* no u */
 # define PTR_ADDIU     addi /* no u */
-# define PTR_SUB       add
-# define PTR_SUBI      subi
 # define PTR_SUBU      sub /* no u */
 # define PTR_SUBIU     sub /* no u */
+#else
+# define PTR_ADDU       addu
+# define PTR_ADDIU      addiu
+# define PTR_SUBU       subu
+# define PTR_SUBIU      subu
+#endif
 # define PTR_L         lw
 # define PTR_LA                la
 # define PTR_S         sw
@@ -435,7 +448,7 @@ symbol              =       value
 # define PTR_ADDI      daddi
 # define PTR_ADDU      daddu
 # define PTR_ADDIU     daddiu
-# define PTR_SUB       dadd
+# define PTR_SUB       dsub
 # define PTR_SUBI      dsubi
 # define PTR_SUBU      dsubu
 # define PTR_SUBIU     dsubu
@@ -466,7 +479,7 @@ symbol              =       value
 # define MTC0  dmtc0
 #endif
 
-/* The MIPS archtectures do not have a uniform memory model.  Particular
+/* The MIPS architectures do not have a uniform memory model.  Particular
    platforms may provide additional guarantees - for instance, the R4000
    LL and SC instructions implicitly perform a SYNC, and the 4K promises
    strong ordering.