Qucs-S S-parameter Viewer & RF Synthesis Tools
Loading...
Searching...
No Matches
docs
help
help-venv
lib
python3.12
site-packages
greenlet
platform
switch_loongarch64_linux.h
1
#define STACK_REFPLUS 1
2
3
#ifdef SLP_EVAL
4
#define STACK_MAGIC 0
5
6
#define REGS_TO_SAVE "s0", "s1", "s2", "s3", "s4", "s5", \
7
"s6", "s7", "s8", "fp", \
8
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31"
9
10
static
int
11
slp_switch(
void
)
12
{
13
int
ret;
14
long
*stackref, stsizediff;
15
__asm__
volatile
(
""
: : : REGS_TO_SAVE);
16
__asm__
volatile
(
"move %0, $sp"
:
"=r"
(stackref) : );
17
{
18
SLP_SAVE_STATE(stackref, stsizediff);
19
__asm__
volatile
(
20
"add.d $sp, $sp, %0\n\t"
21
:
/* no outputs */
22
:
"r"
(stsizediff)
23
);
24
SLP_RESTORE_STATE();
25
}
26
__asm__
volatile
(
""
: : : REGS_TO_SAVE);
27
__asm__
volatile
(
"move %0, $zero"
:
"=r"
(ret) : );
28
return
ret;
29
}
30
31
#endif
Generated by
1.9.8