]> git.proxmox.com Git - rustc.git/blame - vendor/psm/src/arch/riscv64.s
New upstream version 1.68.2+dfsg1
[rustc.git] / vendor / psm / src / arch / riscv64.s
CommitLineData
f9f354fc
XL
1#include "psm.h"
2
3.text
4.globl rust_psm_stack_direction
5.p2align 2
6.type rust_psm_stack_direction,@function
7rust_psm_stack_direction:
8/* extern "C" fn() -> u8 */
9.cfi_startproc
10 li x10, STACK_DIRECTION_DESCENDING
11 jr x1
12.rust_psm_stack_direction_end:
13.size rust_psm_stack_direction,.rust_psm_stack_direction_end-rust_psm_stack_direction
14.cfi_endproc
15
16
17.globl rust_psm_stack_pointer
18.p2align 2
19.type rust_psm_stack_pointer,@function
20rust_psm_stack_pointer:
21/* extern "C" fn() -> *mut u8 */
22.cfi_startproc
23 add x10, x2, x0
24 jr x1
25.rust_psm_stack_pointer_end:
26.size rust_psm_stack_pointer,.rust_psm_stack_pointer_end-rust_psm_stack_pointer
27.cfi_endproc
28
29
30.globl rust_psm_replace_stack
31.p2align 2
32.type rust_psm_replace_stack,@function
33rust_psm_replace_stack:
34/* extern "C" fn(x10: usize, x11: extern "C" fn(usize), x12: *mut u8) */
35.cfi_startproc
36 add x2, x12, x0
37 jr x11
38.rust_psm_replace_stack_end:
39.size rust_psm_replace_stack,.rust_psm_replace_stack_end-rust_psm_replace_stack
40.cfi_endproc
41
42
43.globl rust_psm_on_stack
44.p2align 2
45.type rust_psm_on_stack,@function
46rust_psm_on_stack:
47/* extern "C" fn(x10: usize, x11: usize, x12: extern "C" fn(usize, usize), x13: *mut u8) */
48.cfi_startproc
49 sd x1, -8(x13)
50 sd x2, -16(x13)
6522a427
EL
51 addi x2, x13, -16
52 .cfi_def_cfa x2, 16
f9f354fc
XL
53 .cfi_offset x1, -8
54 .cfi_offset x2, -16
f9f354fc
XL
55 jalr x1, x12, 0
56 ld x1, 8(x2)
57 .cfi_restore x1
58 ld x2, 0(x2)
59 .cfi_restore x2
60 jr x1
61.rust_psm_on_stack_end:
62.size rust_psm_on_stack,.rust_psm_on_stack_end-rust_psm_on_stack
63.cfi_endproc