]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseLib/RiscV64/RiscVSetJumpLongJump.S
MdePkg/BaseLib: BaseLib for RISCV64 architecture
[mirror_edk2.git] / MdePkg / Library / BaseLib / RiscV64 / RiscVSetJumpLongJump.S
CommitLineData
7601b251
AC
1//------------------------------------------------------------------------------\r
2//\r
3// Set/Long jump for RISC-V\r
4//\r
5// Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>\r
6//\r
7// SPDX-License-Identifier: BSD-2-Clause-Patent\r
8//\r
9//------------------------------------------------------------------------------\r
10# define REG_S sd\r
11# define REG_L ld\r
12# define SZREG 8\r
13.align 3\r
14 .globl SetJump\r
15\r
16SetJump:\r
17 REG_S ra, 0*SZREG(a0)\r
18 REG_S s0, 1*SZREG(a0)\r
19 REG_S s1, 2*SZREG(a0)\r
20 REG_S s2, 3*SZREG(a0)\r
21 REG_S s3, 4*SZREG(a0)\r
22 REG_S s4, 5*SZREG(a0)\r
23 REG_S s5, 6*SZREG(a0)\r
24 REG_S s6, 7*SZREG(a0)\r
25 REG_S s7, 8*SZREG(a0)\r
26 REG_S s8, 9*SZREG(a0)\r
27 REG_S s9, 10*SZREG(a0)\r
28 REG_S s10, 11*SZREG(a0)\r
29 REG_S s11, 12*SZREG(a0)\r
30 REG_S sp, 13*SZREG(a0)\r
31 li a0, 0\r
32 ret\r
33\r
34 .globl InternalLongJump\r
35InternalLongJump:\r
36 REG_L ra, 0*SZREG(a0)\r
37 REG_L s0, 1*SZREG(a0)\r
38 REG_L s1, 2*SZREG(a0)\r
39 REG_L s2, 3*SZREG(a0)\r
40 REG_L s3, 4*SZREG(a0)\r
41 REG_L s4, 5*SZREG(a0)\r
42 REG_L s5, 6*SZREG(a0)\r
43 REG_L s6, 7*SZREG(a0)\r
44 REG_L s7, 8*SZREG(a0)\r
45 REG_L s8, 9*SZREG(a0)\r
46 REG_L s9, 10*SZREG(a0)\r
47 REG_L s10, 11*SZREG(a0)\r
48 REG_L s11, 12*SZREG(a0)\r
49 REG_L sp, 13*SZREG(a0)\r
50\r
51 add a0, s0, 0\r
52 add a1, s1, 0\r
53 add a2, s2, 0\r
54 add a3, s3, 0\r
55 ret\r