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

NGcopy_from_user.S (711B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/* NGcopy_from_user.S: Niagara optimized copy from userspace.
      3 *
      4 * Copyright (C) 2006, 2007 David S. Miller (davem@davemloft.net)
      5 */
      6
      7#define EX_LD(x,y)		\
      898:	x;			\
      9	.section __ex_table,"a";\
     10	.align 4;		\
     11	.word 98b, y;		\
     12	.text;			\
     13	.align 4;
     14
     15#ifndef ASI_AIUS
     16#define ASI_AIUS	0x11
     17#endif
     18
     19#define FUNC_NAME		NGcopy_from_user
     20#define LOAD(type,addr,dest)	type##a [addr] ASI_AIUS, dest
     21#define LOAD_TWIN(addr_reg,dest0,dest1)	\
     22	ldda [addr_reg] ASI_BLK_INIT_QUAD_LDD_AIUS, dest0
     23#define EX_RETVAL(x)		%g0
     24
     25#ifdef __KERNEL__
     26#define PREAMBLE					\
     27	rd		%asi, %g1;			\
     28	cmp		%g1, ASI_AIUS;			\
     29	bne,pn		%icc, raw_copy_in_user;		\
     30	 nop
     31#endif
     32
     33#include "NGmemcpy.S"