]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/config/rs6000/ppc-asm.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / rs6000 / ppc-asm.h
index 3a70a137b55b8ff5d74c1812ee4c094c7cd4b520..48edc9945d7626170c77b6a4e79675f38fcadf42 100644 (file)
@@ -1,6 +1,6 @@
 /* PowerPC asm definitions for GNU C.
 
-Copyright (C) 2002, 2003, 2008 Free Software Foundation, Inc.
+Copyright (C) 2002-2020 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -87,7 +87,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define f16    16
 #define f17    17
 #define f18    18
-#define f19     19
+#define f19    19
 #define f20    20
 #define f21    21
 #define f22    22
@@ -101,6 +101,143 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define f30    30
 #define f31    31
 
+#ifdef __VSX__
+#define f32    32
+#define f33    33
+#define f34    34
+#define f35    35
+#define f36    36
+#define f37    37
+#define f38    38
+#define f39    39
+#define f40    40
+#define f41    41
+#define f42    42
+#define f43    43
+#define f44    44
+#define f45    45
+#define f46    46
+#define f47    47
+#define f48    48
+#define f49    49
+#define f50    50
+#define f51    51
+#define f52    52
+#define f53    53
+#define f54    54
+#define f55    55
+#define f56    56
+#define f57    57
+#define f58    58
+#define f59    59
+#define f60    60
+#define f61    61
+#define f62    62
+#define f63    63
+#endif
+
+#ifdef __ALTIVEC__
+#define v0     0
+#define v1     1
+#define v2     2
+#define v3     3
+#define v4     4
+#define v5     5
+#define v6     6
+#define v7     7
+#define v8     8
+#define v9     9
+#define v10    10
+#define v11    11
+#define v12    12
+#define v13    13
+#define v14    14
+#define v15    15
+#define v16    16
+#define v17    17
+#define v18    18
+#define v19    19
+#define v20    20
+#define v21    21
+#define v22    22
+#define v23    23
+#define v24    24
+#define v25    25
+#define v26    26
+#define v27    27
+#define v28    28
+#define v29    29
+#define v30    30
+#define v31    31
+#endif
+
+#ifdef __VSX__
+#define vs0    0
+#define vs1    1
+#define vs2    2
+#define vs3    3
+#define vs4    4
+#define vs5    5
+#define vs6    6
+#define vs7    7
+#define vs8    8
+#define vs9    9
+#define vs10   10
+#define vs11   11
+#define vs12   12
+#define vs13   13
+#define vs14   14
+#define vs15   15
+#define vs16   16
+#define vs17   17
+#define vs18   18
+#define vs19   19
+#define vs20   20
+#define vs21   21
+#define vs22   22
+#define vs23   23
+#define vs24   24
+#define vs25   25
+#define vs26   26
+#define vs27   27
+#define vs28   28
+#define vs29   29
+#define vs30   30
+#define vs31   31
+#define vs32   32
+#define vs33   33
+#define vs34   34
+#define vs35   35
+#define vs36   36
+#define vs37   37
+#define vs38   38
+#define vs39   39
+#define vs40   40
+#define vs41   41
+#define vs42   42
+#define vs43   43
+#define vs44   44
+#define vs45   45
+#define vs46   46
+#define vs47   47
+#define vs48   48
+#define vs49   49
+#define vs50   50
+#define vs51   51
+#define vs52   52
+#define vs53   53
+#define vs54   54
+#define vs55   55
+#define vs56   56
+#define vs57   57
+#define vs58   58
+#define vs59   59
+#define vs60   60
+#define vs61   61
+#define vs62   62
+#define vs63   63
+#endif
+
 /*
  * Macros to glue together two tokens.
  */
@@ -119,7 +256,30 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  * the real function with one or two leading periods respectively.
  */
 
-#if defined (__powerpc64__)
+#if defined(__powerpc64__) && _CALL_ELF == 2
+
+/* Defining "toc" above breaks @toc in assembler code.  */
+#undef toc
+
+#define FUNC_NAME(name) GLUE(__USER_LABEL_PREFIX__,name)
+#define JUMP_TARGET(name) FUNC_NAME(name)
+#define FUNC_START(name) \
+       .type FUNC_NAME(name),@function; \
+       .globl FUNC_NAME(name); \
+FUNC_NAME(name): \
+0:     addis 2,12,(.TOC.-0b)@ha; \
+       addi 2,2,(.TOC.-0b)@l; \
+       .localentry FUNC_NAME(name),.-FUNC_NAME(name)
+
+#define HIDDEN_FUNC(name) \
+  FUNC_START(name) \
+  .hidden FUNC_NAME(name);
+
+#define FUNC_END(name) \
+       .size FUNC_NAME(name),.-FUNC_NAME(name)
+
+#elif defined (__powerpc64__)
+
 #define FUNC_NAME(name) GLUE(.,name)
 #define JUMP_TARGET(name) FUNC_NAME(name)
 #define FUNC_START(name) \
@@ -196,6 +356,25 @@ GLUE(.L,name): \
        .size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
 #endif
 
+#ifdef IN_GCC
+/* For HAVE_GAS_CFI_DIRECTIVE.  */
+#include "auto-host.h"
+
+#ifdef HAVE_GAS_CFI_DIRECTIVE
+# define CFI_STARTPROC                 .cfi_startproc
+# define CFI_ENDPROC                   .cfi_endproc
+# define CFI_OFFSET(reg, off)          .cfi_offset reg, off
+# define CFI_DEF_CFA_REGISTER(reg)     .cfi_def_cfa_register reg
+# define CFI_RESTORE(reg)              .cfi_restore reg
+#else
+# define CFI_STARTPROC
+# define CFI_ENDPROC
+# define CFI_OFFSET(reg, off)
+# define CFI_DEF_CFA_REGISTER(reg)
+# define CFI_RESTORE(reg)
+#endif
+#endif
+
 #if defined __linux__ && !defined __powerpc64__
        .section .note.GNU-stack
        .previous