]>
Commit | Line | Data |
---|---|---|
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 | |
7 | rust_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 | |
20 | rust_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 | |
33 | rust_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 | |
46 | rust_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 |