Загрузить файлы в «venv/Lib/site-packages/greenlet/platform»
This commit is contained in:
48
venv/Lib/site-packages/greenlet/platform/switch_csky_gcc.h
Normal file
48
venv/Lib/site-packages/greenlet/platform/switch_csky_gcc.h
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#ifdef SLP_EVAL
|
||||||
|
#define STACK_MAGIC 0
|
||||||
|
#define REG_FP "r8"
|
||||||
|
#ifdef __CSKYABIV2__
|
||||||
|
#define REGS_TO_SAVE_GENERAL "r4", "r5", "r6", "r7", "r9", "r10", "r11", "r15",\
|
||||||
|
"r16", "r17", "r18", "r19", "r20", "r21", "r22",\
|
||||||
|
"r23", "r24", "r25"
|
||||||
|
|
||||||
|
#if defined (__CSKY_HARD_FLOAT__) || (__CSKY_VDSP__)
|
||||||
|
#define REGS_TO_SAVE REGS_TO_SAVE_GENERAL, "vr8", "vr9", "vr10", "vr11", "vr12",\
|
||||||
|
"vr13", "vr14", "vr15"
|
||||||
|
#else
|
||||||
|
#define REGS_TO_SAVE REGS_TO_SAVE_GENERAL
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define REGS_TO_SAVE "r9", "r10", "r11", "r12", "r13", "r15"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
#ifdef __GNUC__
|
||||||
|
__attribute__((optimize("no-omit-frame-pointer")))
|
||||||
|
#endif
|
||||||
|
slp_switch(void)
|
||||||
|
{
|
||||||
|
int *stackref, stsizediff;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
__asm__ volatile ("" : : : REGS_TO_SAVE);
|
||||||
|
__asm__ ("mov %0, sp" : "=r" (stackref));
|
||||||
|
{
|
||||||
|
SLP_SAVE_STATE(stackref, stsizediff);
|
||||||
|
__asm__ volatile (
|
||||||
|
"addu sp,%0\n"
|
||||||
|
"addu "REG_FP",%0\n"
|
||||||
|
:
|
||||||
|
: "r" (stsizediff)
|
||||||
|
);
|
||||||
|
|
||||||
|
SLP_RESTORE_STATE();
|
||||||
|
}
|
||||||
|
__asm__ volatile ("movi %0, 0" : "=r" (result));
|
||||||
|
__asm__ volatile ("" : : : REGS_TO_SAVE);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#define STACK_REFPLUS 1
|
||||||
|
|
||||||
|
#ifdef SLP_EVAL
|
||||||
|
#define STACK_MAGIC 0
|
||||||
|
|
||||||
|
#define REGS_TO_SAVE "s0", "s1", "s2", "s3", "s4", "s5", \
|
||||||
|
"s6", "s7", "s8", "fp", \
|
||||||
|
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31"
|
||||||
|
|
||||||
|
static int
|
||||||
|
slp_switch(void)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
long *stackref, stsizediff;
|
||||||
|
__asm__ volatile ("" : : : REGS_TO_SAVE);
|
||||||
|
__asm__ volatile ("move %0, $sp" : "=r" (stackref) : );
|
||||||
|
{
|
||||||
|
SLP_SAVE_STATE(stackref, stsizediff);
|
||||||
|
__asm__ volatile (
|
||||||
|
"add.d $sp, $sp, %0\n\t"
|
||||||
|
: /* no outputs */
|
||||||
|
: "r" (stsizediff)
|
||||||
|
);
|
||||||
|
SLP_RESTORE_STATE();
|
||||||
|
}
|
||||||
|
__asm__ volatile ("" : : : REGS_TO_SAVE);
|
||||||
|
__asm__ volatile ("move %0, $zero" : "=r" (ret) : );
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
38
venv/Lib/site-packages/greenlet/platform/switch_m68k_gcc.h
Normal file
38
venv/Lib/site-packages/greenlet/platform/switch_m68k_gcc.h
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* this is the internal transfer function.
|
||||||
|
*
|
||||||
|
* HISTORY
|
||||||
|
* 2014-01-06 Andreas Schwab <schwab@linux-m68k.org>
|
||||||
|
* File created.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef SLP_EVAL
|
||||||
|
|
||||||
|
#define STACK_MAGIC 0
|
||||||
|
|
||||||
|
#define REGS_TO_SAVE "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \
|
||||||
|
"%a2", "%a3", "%a4"
|
||||||
|
|
||||||
|
static int
|
||||||
|
slp_switch(void)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
int *stackref, stsizediff;
|
||||||
|
void *fp, *a5;
|
||||||
|
__asm__ volatile ("" : : : REGS_TO_SAVE);
|
||||||
|
__asm__ volatile ("move.l %%fp, %0" : "=m"(fp));
|
||||||
|
__asm__ volatile ("move.l %%a5, %0" : "=m"(a5));
|
||||||
|
__asm__ ("move.l %%sp, %0" : "=r"(stackref));
|
||||||
|
{
|
||||||
|
SLP_SAVE_STATE(stackref, stsizediff);
|
||||||
|
__asm__ volatile ("add.l %0, %%sp; add.l %0, %%fp" : : "r"(stsizediff));
|
||||||
|
SLP_RESTORE_STATE();
|
||||||
|
__asm__ volatile ("clr.l %0" : "=g" (err));
|
||||||
|
}
|
||||||
|
__asm__ volatile ("move.l %0, %%a5" : : "m"(a5));
|
||||||
|
__asm__ volatile ("move.l %0, %%fp" : : "m"(fp));
|
||||||
|
__asm__ volatile ("" : : : REGS_TO_SAVE);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
65
venv/Lib/site-packages/greenlet/platform/switch_mips_unix.h
Normal file
65
venv/Lib/site-packages/greenlet/platform/switch_mips_unix.h
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
* this is the internal transfer function.
|
||||||
|
*
|
||||||
|
* HISTORY
|
||||||
|
* 20-Sep-14 Matt Madison <madison@bliss-m.org>
|
||||||
|
* Re-code the saving of the gp register for MIPS64.
|
||||||
|
* 05-Jan-08 Thiemo Seufer <ths@debian.org>
|
||||||
|
* Ported from ppc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STACK_REFPLUS 1
|
||||||
|
|
||||||
|
#ifdef SLP_EVAL
|
||||||
|
|
||||||
|
#define STACK_MAGIC 0
|
||||||
|
|
||||||
|
#define REGS_TO_SAVE "$16", "$17", "$18", "$19", "$20", "$21", "$22", \
|
||||||
|
"$23", "$30"
|
||||||
|
__attribute__((nomips16))
|
||||||
|
static int
|
||||||
|
slp_switch(void)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
int *stackref, stsizediff;
|
||||||
|
#ifdef __mips64
|
||||||
|
uint64_t gpsave;
|
||||||
|
#endif
|
||||||
|
__asm__ __volatile__ ("" : : : REGS_TO_SAVE);
|
||||||
|
#ifdef __mips64
|
||||||
|
__asm__ __volatile__ ("sd $28,%0" : "=m" (gpsave) : : );
|
||||||
|
#endif
|
||||||
|
__asm__ ("move %0, $29" : "=r" (stackref) : );
|
||||||
|
{
|
||||||
|
SLP_SAVE_STATE(stackref, stsizediff);
|
||||||
|
__asm__ __volatile__ (
|
||||||
|
#ifdef __mips64
|
||||||
|
"daddu $29, $29, %0\n"
|
||||||
|
#else
|
||||||
|
"addu $29, $29, %0\n"
|
||||||
|
#endif
|
||||||
|
: /* no outputs */
|
||||||
|
: "r" (stsizediff)
|
||||||
|
);
|
||||||
|
SLP_RESTORE_STATE();
|
||||||
|
}
|
||||||
|
#ifdef __mips64
|
||||||
|
__asm__ __volatile__ ("ld $28,%0" : : "m" (gpsave) : );
|
||||||
|
#endif
|
||||||
|
__asm__ __volatile__ ("" : : : REGS_TO_SAVE);
|
||||||
|
__asm__ __volatile__ ("move %0, $0" : "=r" (err));
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* further self-processing support
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* if you want to add self-inspection tools, place them
|
||||||
|
* here. See the x86_msvc for the necessary defines.
|
||||||
|
* These features are highly experimental und not
|
||||||
|
* essential yet.
|
||||||
|
*/
|
||||||
87
venv/Lib/site-packages/greenlet/platform/switch_ppc_aix.h
Normal file
87
venv/Lib/site-packages/greenlet/platform/switch_ppc_aix.h
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
/*
|
||||||
|
* this is the internal transfer function.
|
||||||
|
*
|
||||||
|
* HISTORY
|
||||||
|
* 07-Mar-11 Floris Bruynooghe <flub@devork.be>
|
||||||
|
* Do not add stsizediff to general purpose
|
||||||
|
* register (GPR) 30 as this is a non-volatile and
|
||||||
|
* unused by the PowerOpen Environment, therefore
|
||||||
|
* this was modifying a user register instead of the
|
||||||
|
* frame pointer (which does not seem to exist).
|
||||||
|
* 07-Sep-05 (py-dev mailing list discussion)
|
||||||
|
* removed 'r31' from the register-saved. !!!! WARNING !!!!
|
||||||
|
* It means that this file can no longer be compiled statically!
|
||||||
|
* It is now only suitable as part of a dynamic library!
|
||||||
|
* 14-Jan-04 Bob Ippolito <bob@redivi.com>
|
||||||
|
* added cr2-cr4 to the registers to be saved.
|
||||||
|
* Open questions: Should we save FP registers?
|
||||||
|
* What about vector registers?
|
||||||
|
* Differences between darwin and unix?
|
||||||
|
* 24-Nov-02 Christian Tismer <tismer@tismer.com>
|
||||||
|
* needed to add another magic constant to insure
|
||||||
|
* that f in slp_eval_frame(PyFrameObject *f)
|
||||||
|
* STACK_REFPLUS will probably be 1 in most cases.
|
||||||
|
* gets included into the saved stack area.
|
||||||
|
* 04-Oct-02 Gustavo Niemeyer <niemeyer@conectiva.com>
|
||||||
|
* Ported from MacOS version.
|
||||||
|
* 17-Sep-02 Christian Tismer <tismer@tismer.com>
|
||||||
|
* after virtualizing stack save/restore, the
|
||||||
|
* stack size shrunk a bit. Needed to introduce
|
||||||
|
* an adjustment STACK_MAGIC per platform.
|
||||||
|
* 15-Sep-02 Gerd Woetzel <gerd.woetzel@GMD.DE>
|
||||||
|
* slightly changed framework for sparc
|
||||||
|
* 29-Jun-02 Christian Tismer <tismer@tismer.com>
|
||||||
|
* Added register 13-29, 31 saves. The same way as
|
||||||
|
* Armin Rigo did for the x86_unix version.
|
||||||
|
* This seems to be now fully functional!
|
||||||
|
* 04-Mar-02 Hye-Shik Chang <perky@fallin.lv>
|
||||||
|
* Ported from i386.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STACK_REFPLUS 1
|
||||||
|
|
||||||
|
#ifdef SLP_EVAL
|
||||||
|
|
||||||
|
#define STACK_MAGIC 3
|
||||||
|
|
||||||
|
/* !!!!WARNING!!!! need to add "r31" in the next line if this header file
|
||||||
|
* is meant to be compiled non-dynamically!
|
||||||
|
*/
|
||||||
|
#define REGS_TO_SAVE "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", \
|
||||||
|
"r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", \
|
||||||
|
"cr2", "cr3", "cr4"
|
||||||
|
static int
|
||||||
|
slp_switch(void)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
int *stackref, stsizediff;
|
||||||
|
__asm__ volatile ("" : : : REGS_TO_SAVE);
|
||||||
|
__asm__ ("mr %0, 1" : "=r" (stackref) : );
|
||||||
|
{
|
||||||
|
SLP_SAVE_STATE(stackref, stsizediff);
|
||||||
|
__asm__ volatile (
|
||||||
|
"mr 11, %0\n"
|
||||||
|
"add 1, 1, 11\n"
|
||||||
|
: /* no outputs */
|
||||||
|
: "r" (stsizediff)
|
||||||
|
: "11"
|
||||||
|
);
|
||||||
|
SLP_RESTORE_STATE();
|
||||||
|
}
|
||||||
|
__asm__ volatile ("" : : : REGS_TO_SAVE);
|
||||||
|
__asm__ volatile ("li %0, 0" : "=r" (err));
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* further self-processing support
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* if you want to add self-inspection tools, place them
|
||||||
|
* here. See the x86_msvc for the necessary defines.
|
||||||
|
* These features are highly experimental und not
|
||||||
|
* essential yet.
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user