aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/kernel/asm.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-08-04 20:50:41 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2023-08-04 20:50:41 +0300
commite16f5f81dfb2e97a554ec19b941ec05a7942fd2d (patch)
tree46f0609b5be009d4d1057fa02ece4461732941e0 /arch/riscv64/kernel/asm.h
parent5f30284181fcfe5b16dfb94d4fba9a9ed4a2dc6a (diff)
downloadkmi-e16f5f81dfb2e97a554ec19b941ec05a7942fd2d.tar.gz
kmi-e16f5f81dfb2e97a554ec19b941ec05a7942fd2d.zip
add initial smp bringup
Diffstat (limited to 'arch/riscv64/kernel/asm.h')
-rw-r--r--arch/riscv64/kernel/asm.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/riscv64/kernel/asm.h b/arch/riscv64/kernel/asm.h
new file mode 100644
index 0000000..f8ad202
--- /dev/null
+++ b/arch/riscv64/kernel/asm.h
@@ -0,0 +1,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