cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

linkage.h (1484B)


      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