/* U3copy_to_user.S: UltraSparc-III optimized copy to userspace.1*2* Copyright (C) 1999, 2000, 2004 David S. Miller ([email protected])3*/45#define EX_ST(x) \698: x; \7.section __ex_table,"a";\8.align 4; \9.word 98b, __retl_one; \10.text; \11.align 4;1213#define FUNC_NAME U3copy_to_user14#define STORE(type,src,addr) type##a src, [addr] ASI_AIUS15#define STORE_BLK(src,addr) stda src, [addr] ASI_BLK_AIUS16#define EX_RETVAL(x) 01718/* Writing to %asi is _expensive_ so we hardcode it.19* Reading %asi to check for KERNEL_DS is comparatively20* cheap.21*/22#define PREAMBLE \23rd %asi, %g1; \24cmp %g1, ASI_AIUS; \25bne,pn %icc, ___copy_in_user; \26nop; \2728#include "U3memcpy.S"293031