653f2e4848581d4a62588e28e1b3a4f95c9a3428
[oweals/u-boot.git] / arch / sparc / include / asm / asmmacro.h
1 /* Assembler macros for SPARC
2  *
3  * (C) Copyright 2007, taken from linux asm-sparc/asmmacro.h
4  * Daniel Hellstrom, Gaisler Research, daniel@gaisler.com.
5  *
6  * SPDX-License-Identifier:     GPL-2.0+
7  */
8
9 #ifndef __SPARC_ASMMACRO_H__
10 #define __SPARC_ASMMACRO_H__
11
12 #include <config.h>
13
14 /* All trap entry points _must_ begin with this macro or else you
15  * lose.  It makes sure the kernel has a proper window so that
16  * c-code can be called.
17  */
18 #define SAVE_ALL_HEAD \
19         sethi   %hi(trap_setup+(CONFIG_SYS_RELOC_MONITOR_BASE-CONFIG_SYS_TEXT_BASE)), %l4; \
20         jmpl    %l4 + %lo(trap_setup+(CONFIG_SYS_RELOC_MONITOR_BASE-CONFIG_SYS_TEXT_BASE)), %l6;
21 #define SAVE_ALL \
22         SAVE_ALL_HEAD \
23         nop;
24
25 /* All traps low-level code here must end with this macro. */
26 #define RESTORE_ALL b ret_trap_entry; clr %l6;
27
28 #endif