[svn r50576] This patch by Thiemo Seufer adds support for mips and mipsel.
--HG-- branch : trunk
This commit is contained in:
parent
c5f6b437c8
commit
efd732b035
|
@ -18,4 +18,6 @@
|
||||||
#include "switch_s390_unix.h" /* Linux/S390 */
|
#include "switch_s390_unix.h" /* Linux/S390 */
|
||||||
#elif defined(__GNUC__) && defined(__s390x__) && defined(__linux__)
|
#elif defined(__GNUC__) && defined(__s390x__) && defined(__linux__)
|
||||||
#include "switch_s390_unix.h" /* Linux/S390 zSeries (identical) */
|
#include "switch_s390_unix.h" /* Linux/S390 zSeries (identical) */
|
||||||
|
#elif defined(__GNUC__) && defined(__mips__) && defined(__linux__)
|
||||||
|
#include "switch_mips_unix.h" /* Linux/MIPS */
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
/*
|
||||||
|
* this is the internal transfer function.
|
||||||
|
*
|
||||||
|
* HISTORY
|
||||||
|
* 05-Jan-08 Thiemo Seufer <ths@debian.org>
|
||||||
|
* Ported from ppc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STACK_REFPLUS 1
|
||||||
|
|
||||||
|
#ifdef SLP_EVAL
|
||||||
|
|
||||||
|
#define STACK_MAGIC 0
|
||||||
|
|
||||||
|
#ifdef __mips64
|
||||||
|
#define REGS_TO_SAVE "$16", "$17", "$18", "$19", "$20", "$21", "$22", \
|
||||||
|
"$23", "$28", "$30"
|
||||||
|
#else
|
||||||
|
#define REGS_TO_SAVE "$16", "$17", "$18", "$19", "$20", "$21", "$22", \
|
||||||
|
"$23", "$30"
|
||||||
|
#endif
|
||||||
|
static int
|
||||||
|
slp_switch(void)
|
||||||
|
{
|
||||||
|
register int *stackref, stsizediff;
|
||||||
|
__asm__ __volatile__ ("" : : : REGS_TO_SAVE);
|
||||||
|
__asm__ ("move %0, $29" : "=r" (stackref) : );
|
||||||
|
{
|
||||||
|
SLP_SAVE_STATE(stackref, stsizediff);
|
||||||
|
__asm__ __volatile__ (
|
||||||
|
#ifdef __mips64
|
||||||
|
"daddu $29, %0\n"
|
||||||
|
#else
|
||||||
|
"addu $29, %0\n"
|
||||||
|
#endif
|
||||||
|
: /* no outputs */
|
||||||
|
: "r" (stsizediff)
|
||||||
|
);
|
||||||
|
SLP_RESTORE_STATE();
|
||||||
|
}
|
||||||
|
__asm__ __volatile__ ("" : : : REGS_TO_SAVE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#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.
|
||||||
|
*/
|
Loading…
Reference in New Issue