aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/kernel/asm.h
blob: f8ad20272a7661d37f8a7f72c740f44a212f23cc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* SPDX-License-Identifier: copyleft-next-0.3.1 */
/* Copyright 2023, Kim Kuparinen < kimi.h.kuparinen@gmail.com > */

/**
 * @file asm.h
 * Stuff to make assembly easier to write on both riscv64 and riscv32.
 */

#if __riscv_xlen == 64

/** Store register. */
#define sr sd

/** Load register. */
#define lr ld

/** Shift count to get a register sized value. */
#define RW_SHIFT 3

#else

/** Store register. */
#define sr sw

/** Load register. */
#define lr lw

/** Shift count to get register sized value. */
#define RW_SHIFT 2
#endif