Skip to content
Snippets Groups Projects
Commit 1f9fc8e6 authored by sof's avatar sof
Browse files

[project @ 1997-10-09 10:05:05 by sof]

Added SET_RETADDR macro for MIPSes
parent fd40a16a
No related merge requests found
......@@ -232,7 +232,8 @@ in the end.
Getting this right requires three extremely @MAGIC@ macros, no doubt
chock full of assembly gook for the current platform. These are
@MAGIC_CALL_SETUP@, which gets ready for one of these magic calls,
@MAGIC_CALL_SET
UP@, which gets ready for one of these magic calls,
@MAGIC_CALL@, which performs the call and stashes away all possible
results, and @MAGIC_RETURN@, which collects all possible results back
up again.
......@@ -533,6 +534,7 @@ gets whatever it's after.
"\ts.d $f0, -8($sp)\n" \
"\tsw $2, -12($sp)");
#define MAGIC_RETURN \
__asm__ volatile ( \
"l.d $f0, -8($sp)\n" \
......@@ -540,6 +542,13 @@ gets whatever it's after.
#define WRAPPER_NAME(f) /* nothing */
/*
Threaded code needs to be able to grab the return address, in case we have
an intervening context switch.
*/
#define SET_RETADDR(loc) { register StgFunPtrFunPtr ra __asm__ ("$31"); loc = ra; }
#define WRAPPER_SETUP(f,ignore1,ignore2) SaveAllStgContext();
#define WRAPPER_RETURN(x) \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment