ARCv2: entry: rewrite to enable use of double load/stores LDD/STD
[linux-2.6-block.git] / arch / arc / include / asm / linkage.h
index b29f1a9fd6f7359957389d5cd30725b7a449f579..a0eeb9f8f0a90fc5a9834b2faf4d4445a3dbcde3 100644 (file)
@@ -1,9 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
  */
 
 #ifndef __ASM_LINKAGE_H
 
 #ifdef __ASSEMBLY__
 
+.macro ST2 e, o, off
+#ifdef CONFIG_ARC_HAS_LL64
+       std     \e, [sp, \off]
+#else
+       st      \e, [sp, \off]
+       st      \o, [sp, \off+4]
+#endif
+.endm
+
+.macro LD2 e, o, off
+#ifdef CONFIG_ARC_HAS_LL64
+       ldd     \e, [sp, \off]
+#else
+       ld      \e, [sp, \off]
+       ld      \o, [sp, \off+4]
+#endif
+.endm
+
 #define ASM_NL          `      /* use '`' to mark new line in macro */
 
 /* annotation for data we want in DCCM - if enabled in .config */