mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RISCV: Patch ST and libsrtp. #3115
This commit is contained in:
parent
8a6fa30992
commit
08c4b25030
6 changed files with 187 additions and 38 deletions
76
trunk/3rdparty/st-srs/md_linux.S
vendored
76
trunk/3rdparty/st-srs/md_linux.S
vendored
|
@ -352,6 +352,82 @@
|
|||
|
||||
|
||||
|
||||
#elif defined(__riscv)
|
||||
|
||||
/****************************************************************/
|
||||
/*
|
||||
* Internal __jmp_buf layout
|
||||
* riscv-asm: https://github.com/riscv/riscv-asm-manual/blob/master/riscv-asm.md
|
||||
*/
|
||||
#define JB_SP 0 /* A0, SP, Stack pointer */
|
||||
#define JB_RA 1 /* RA, Return address */
|
||||
#define JB_FP 2 /* FP/S0 Frame pointer */
|
||||
#define JB_S1 3 /* S1 Saved register*/
|
||||
#define JB_S2 4 /* S2-S11, Saved register */
|
||||
#define JB_S3 5 /* S2-S11, Saved register */
|
||||
#define JB_S4 6 /* S2-S11, Saved register */
|
||||
#define JB_S5 7 /* S2-S11, Saved register */
|
||||
#define JB_S6 8 /* S2-S11, Saved register */
|
||||
#define JB_S7 9 /* S2-S11, Saved register */
|
||||
#define JB_S8 10 /* S2-S11, Saved register */
|
||||
#define JB_S9 11 /* S2-S11, Saved register */
|
||||
#define JB_S10 12 /* S2-S11, Saved register */
|
||||
#define JB_S11 13 /* S2-S11, Saved register */
|
||||
|
||||
|
||||
.file "md_linux.S"
|
||||
.text
|
||||
|
||||
/* _st_md_cxt_save(__jmp_buf env) */ /* The env is $a0, https://en.wikipedia.org/wiki/RISC-V#Register_sets */
|
||||
.globl _st_md_cxt_save
|
||||
.type _st_md_cxt_save, %function
|
||||
.align 2
|
||||
_st_md_cxt_save:
|
||||
sd sp, JB_SP * 8(a0)
|
||||
sd ra, JB_RA * 8(a0)
|
||||
sd s0, JB_FP * 8(a0)
|
||||
sd s1, JB_S1 * 8(a0)
|
||||
sd s2, JB_S2 * 8(a0)
|
||||
sd s3, JB_S3 * 8(a0)
|
||||
sd s4, JB_S4 * 8(a0)
|
||||
sd s5, JB_S5 * 8(a0)
|
||||
sd s6, JB_S6 * 8(a0)
|
||||
sd s7, JB_S7 * 8(a0)
|
||||
sd s8, JB_S8 * 8(a0)
|
||||
sd s9, JB_S9 * 8(a0)
|
||||
sd s10, JB_S10 * 8(a0)
|
||||
sd s11, JB_S11 * 8(a0)
|
||||
li a0, 0
|
||||
jr ra
|
||||
.size _st_md_cxt_save, .-_st_md_cxt_save
|
||||
|
||||
/****************************************************************/
|
||||
|
||||
/* _st_md_cxt_restore(__jmp_buf env, int val) */
|
||||
.globl _st_md_cxt_restore
|
||||
.type _st_md_cxt_restore, %function
|
||||
.align 2
|
||||
_st_md_cxt_restore:
|
||||
ld sp, JB_SP * 8(a0)
|
||||
ld ra, JB_RA * 8(a0)
|
||||
ld s0, JB_FP * 8(a0)
|
||||
ld s1, JB_S1 * 8(a0)
|
||||
ld s2, JB_S2 * 8(a0)
|
||||
ld s3, JB_S3 * 8(a0)
|
||||
ld s4, JB_S4 * 8(a0)
|
||||
ld s5, JB_S5 * 8(a0)
|
||||
ld s6, JB_S6 * 8(a0)
|
||||
ld s7, JB_S7 * 8(a0)
|
||||
ld s8, JB_S8 * 8(a0)
|
||||
ld s9, JB_S9 * 8(a0)
|
||||
ld s10, JB_S10 * 8(a0)
|
||||
ld s11, JB_S11 * 8(a0)
|
||||
li a0, 1
|
||||
jr ra
|
||||
.size _st_md_cxt_restore, .-_st_md_cxt_restore
|
||||
|
||||
/****************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue