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