linux/arch/arc/include/asm/linkage.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
   4 */
   5
   6#ifndef __ASM_LINKAGE_H
   7#define __ASM_LINKAGE_H
   8
   9#include <asm/dwarf.h>
  10
  11#ifdef __ASSEMBLY__
  12
  13.macro ST2 e, o, off
  14#ifdef CONFIG_ARC_HAS_LL64
  15        std     \e, [sp, \off]
  16#else
  17        st      \e, [sp, \off]
  18        st      \o, [sp, \off+4]
  19#endif
  20.endm
  21
  22.macro LD2 e, o, off
  23#ifdef CONFIG_ARC_HAS_LL64
  24        ldd     \e, [sp, \off]
  25#else
  26        ld      \e, [sp, \off]
  27        ld      \o, [sp, \off+4]
  28#endif
  29.endm
  30
  31#define ASM_NL           `      /* use '`' to mark new line in macro */
  32#define __ALIGN         .align 4
  33#define __ALIGN_STR     __stringify(__ALIGN)
  34
  35/* annotation for data we want in DCCM - if enabled in .config */
  36.macro ARCFP_DATA nm
  37#ifdef CONFIG_ARC_HAS_DCCM
  38        .section .data.arcfp
  39#else
  40        .section .data
  41#endif
  42        .global \nm
  43.endm
  44
  45/* annotation for data we want in DCCM - if enabled in .config */
  46.macro ARCFP_CODE
  47#ifdef CONFIG_ARC_HAS_ICCM
  48        .section .text.arcfp, "ax",@progbits
  49#else
  50        .section .text, "ax",@progbits
  51#endif
  52.endm
  53
  54#define ENTRY_CFI(name)         \
  55        .globl name ASM_NL      \
  56        ALIGN ASM_NL            \
  57        name: ASM_NL            \
  58        CFI_STARTPROC ASM_NL
  59
  60#define END_CFI(name)           \
  61        CFI_ENDPROC ASM_NL      \
  62        .size name, .-name
  63
  64#else   /* !__ASSEMBLY__ */
  65
  66#ifdef CONFIG_ARC_HAS_ICCM
  67#define __arcfp_code __section(".text.arcfp")
  68#else
  69#define __arcfp_code __section(".text")
  70#endif
  71
  72#ifdef CONFIG_ARC_HAS_DCCM
  73#define __arcfp_data __section(".data.arcfp")
  74#else
  75#define __arcfp_data __section(".data")
  76#endif
  77
  78#endif /* __ASSEMBLY__ */
  79
  80#endif
  81