(root)/
glibc-2.38/
sysdeps/
generic/
sysdep.h
       1  /* Generic asm macros used on many machines.
       2     Copyright (C) 1991-2023 Free Software Foundation, Inc.
       3     This file is part of the GNU C Library.
       4  
       5     The GNU C Library is free software; you can redistribute it and/or
       6     modify it under the terms of the GNU Lesser General Public
       7     License as published by the Free Software Foundation; either
       8     version 2.1 of the License, or (at your option) any later version.
       9  
      10     The GNU C Library is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      13     Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public
      16     License along with the GNU C Library; if not, see
      17     <https://www.gnu.org/licenses/>.  */
      18  
      19  #ifndef C_LABEL
      20  
      21  /* Define a macro we can use to construct the asm name for a C symbol.  */
      22  # define C_LABEL(name)	name##:
      23  
      24  #endif
      25  
      26  #ifdef __ASSEMBLER__
      27  /* Mark the end of function named SYM.  This is used on some platforms
      28     to generate correct debugging information.  */
      29  # ifndef END
      30  #  define END(sym)
      31  # endif
      32  
      33  # ifndef JUMPTARGET
      34  #  define JUMPTARGET(sym)	sym
      35  # endif
      36  #endif
      37  
      38  /* Macros to generate eh_frame unwind information.  */
      39  #ifdef __ASSEMBLER__
      40  # define cfi_startproc			.cfi_startproc
      41  # define cfi_endproc			.cfi_endproc
      42  # define cfi_def_cfa(reg, off)		.cfi_def_cfa reg, off
      43  # define cfi_def_cfa_register(reg)	.cfi_def_cfa_register reg
      44  # define cfi_def_cfa_offset(off)	.cfi_def_cfa_offset off
      45  # define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
      46  # define cfi_offset(reg, off)		.cfi_offset reg, off
      47  # define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
      48  # define cfi_register(r1, r2)		.cfi_register r1, r2
      49  # define cfi_return_column(reg)	.cfi_return_column reg
      50  # define cfi_restore(reg)		.cfi_restore reg
      51  # define cfi_same_value(reg)		.cfi_same_value reg
      52  # define cfi_undefined(reg)		.cfi_undefined reg
      53  # define cfi_remember_state		.cfi_remember_state
      54  # define cfi_restore_state		.cfi_restore_state
      55  # define cfi_window_save		.cfi_window_save
      56  # define cfi_personality(enc, exp)	.cfi_personality enc, exp
      57  # define cfi_lsda(enc, exp)		.cfi_lsda enc, exp
      58  
      59  #else /* ! ASSEMBLER */
      60  
      61  # define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
      62  # define CFI_STRINGIFY2(Name) #Name
      63  # define CFI_STARTPROC	".cfi_startproc"
      64  # define CFI_ENDPROC	".cfi_endproc"
      65  # define CFI_DEF_CFA(reg, off)	\
      66     ".cfi_def_cfa " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
      67  # define CFI_DEF_CFA_REGISTER(reg) \
      68     ".cfi_def_cfa_register " CFI_STRINGIFY(reg)
      69  # define CFI_DEF_CFA_OFFSET(off) \
      70     ".cfi_def_cfa_offset " CFI_STRINGIFY(off)
      71  # define CFI_ADJUST_CFA_OFFSET(off) \
      72     ".cfi_adjust_cfa_offset " CFI_STRINGIFY(off)
      73  # define CFI_OFFSET(reg, off) \
      74     ".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
      75  # define CFI_REL_OFFSET(reg, off) \
      76     ".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
      77  # define CFI_REGISTER(r1, r2) \
      78     ".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2)
      79  # define CFI_RETURN_COLUMN(reg) \
      80     ".cfi_return_column " CFI_STRINGIFY(reg)
      81  # define CFI_RESTORE(reg) \
      82     ".cfi_restore " CFI_STRINGIFY(reg)
      83  # define CFI_UNDEFINED(reg) \
      84     ".cfi_undefined " CFI_STRINGIFY(reg)
      85  # define CFI_REMEMBER_STATE \
      86     ".cfi_remember_state"
      87  # define CFI_RESTORE_STATE \
      88     ".cfi_restore_state"
      89  # define CFI_WINDOW_SAVE \
      90     ".cfi_window_save"
      91  # define CFI_PERSONALITY(enc, exp) \
      92     ".cfi_personality " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)
      93  # define CFI_LSDA(enc, exp) \
      94     ".cfi_lsda " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)
      95  #endif
      96  
      97  #include "dwarf2.h"