xref: /kernel/linux/linux-5.10/arch/loongarch/include/asm/asmmacro-64.h (revision 8c2ecf20)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-5.10/arch/loongarch/include/asm/
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * asmmacro.h: Assembler macros to make things easier to read.
4 *
5 * Copyright (C) 2020 Loongson Technology Co., Ltd.
6 */
7#ifndef _ASM_ASMMACRO_64_H
8#define _ASM_ASMMACRO_64_H
9
10#include <asm/asm-offsets.h>
11#include <asm/regdef.h>
12#include <asm/fpregdef.h>
13#include <asm/loongarchregs.h>
14
15	.macro	cpu_save_nonscratch thread
16	stptr.d	s0, \thread, THREAD_REG23
17	stptr.d	s1, \thread, THREAD_REG24
18	stptr.d	s2, \thread, THREAD_REG25
19	stptr.d	s3, \thread, THREAD_REG26
20	stptr.d	s4, \thread, THREAD_REG27
21	stptr.d	s5, \thread, THREAD_REG28
22	stptr.d	s6, \thread, THREAD_REG29
23	stptr.d	s7, \thread, THREAD_REG30
24	stptr.d	s8, \thread, THREAD_REG31
25	stptr.d	sp, \thread, THREAD_REG03
26	stptr.d	fp, \thread, THREAD_REG22
27	.endm
28
29	.macro	cpu_restore_nonscratch thread
30	ldptr.d	s0, \thread, THREAD_REG23
31	ldptr.d	s1, \thread, THREAD_REG24
32	ldptr.d	s2, \thread, THREAD_REG25
33	ldptr.d	s3, \thread, THREAD_REG26
34	ldptr.d	s4, \thread, THREAD_REG27
35	ldptr.d	s5, \thread, THREAD_REG28
36	ldptr.d	s6, \thread, THREAD_REG29
37	ldptr.d	s7, \thread, THREAD_REG30
38	ldptr.d	s8, \thread, THREAD_REG31
39	ldptr.d	sp, \thread, THREAD_REG03
40	ldptr.d	fp, \thread, THREAD_REG22
41	ldptr.d	ra, \thread, THREAD_REG01
42	.endm
43
44#endif /* _ASM_ASMMACRO_64_H */
45

Indexes created Thu Nov 07 10:32:03 CST 2024