projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2004-11-19 18:00:29 by simonpj]
[ghc-hetmet.git]
/
ghc
/
rts
/
Linker.c
diff --git
a/ghc/rts/Linker.c
b/ghc/rts/Linker.c
index
5058294
..
d8f1e43
100644
(file)
--- a/
ghc/rts/Linker.c
+++ b/
ghc/rts/Linker.c
@@
-296,6
+296,7
@@
typedef struct _RtsSymbolVal {
SymX(log) \
SymX(sqrt) \
SymX(memcpy) \
SymX(log) \
SymX(sqrt) \
SymX(memcpy) \
+ SymX(stg_InstallConsoleEvent) \
Sym(mktime) \
Sym(_imp___timezone) \
Sym(_imp___tzname) \
Sym(mktime) \
Sym(_imp___timezone) \
Sym(_imp___tzname) \
@@
-388,9
+389,12
@@
typedef struct _RtsSymbolVal {
SymX(__int_encodeDouble) \
SymX(__int_encodeFloat) \
SymX(andIntegerzh_fast) \
SymX(__int_encodeDouble) \
SymX(__int_encodeFloat) \
SymX(andIntegerzh_fast) \
+ SymX(atomicallyzh_fast) \
SymX(barf) \
SymX(blockAsyncExceptionszh_fast) \
SymX(catchzh_fast) \
SymX(barf) \
SymX(blockAsyncExceptionszh_fast) \
SymX(catchzh_fast) \
+ SymX(catchRetryzh_fast) \
+ SymX(catchSTMzh_fast) \
SymX(closure_flags) \
SymX(cmp_thread) \
SymX(cmpIntegerzh_fast) \
SymX(closure_flags) \
SymX(cmp_thread) \
SymX(cmpIntegerzh_fast) \
@@
-445,6
+449,7
@@
typedef struct _RtsSymbolVal {
SymX_redirect(newCAF, newDynCAF) \
SymX(newMVarzh_fast) \
SymX(newMutVarzh_fast) \
SymX_redirect(newCAF, newDynCAF) \
SymX(newMVarzh_fast) \
SymX(newMutVarzh_fast) \
+ SymX(newTVarzh_fast) \
SymX(atomicModifyMutVarzh_fast) \
SymX(newPinnedByteArrayzh_fast) \
SymX(orIntegerzh_fast) \
SymX(atomicModifyMutVarzh_fast) \
SymX(newPinnedByteArrayzh_fast) \
SymX(orIntegerzh_fast) \
@@
-458,10
+463,12
@@
typedef struct _RtsSymbolVal {
SymX(quotRemIntegerzh_fast) \
SymX(raisezh_fast) \
SymX(raiseIOzh_fast) \
SymX(quotRemIntegerzh_fast) \
SymX(raisezh_fast) \
SymX(raiseIOzh_fast) \
+ SymX(readTVarzh_fast) \
SymX(remIntegerzh_fast) \
SymX(resetNonBlockingFd) \
SymX(resumeThread) \
SymX(resolveObjs) \
SymX(remIntegerzh_fast) \
SymX(resetNonBlockingFd) \
SymX(resumeThread) \
SymX(resolveObjs) \
+ SymX(retryzh_fast) \
SymX(rts_apply) \
SymX(rts_checkSchedStatus) \
SymX(rts_eval) \
SymX(rts_apply) \
SymX(rts_checkSchedStatus) \
SymX(rts_eval) \
@@
-571,6
+578,7
@@
typedef struct _RtsSymbolVal {
SymX(waitReadzh_fast) \
SymX(waitWritezh_fast) \
SymX(word2Integerzh_fast) \
SymX(waitReadzh_fast) \
SymX(waitWritezh_fast) \
SymX(word2Integerzh_fast) \
+ SymX(writeTVarzh_fast) \
SymX(xorIntegerzh_fast) \
SymX(yieldzh_fast)
SymX(xorIntegerzh_fast) \
SymX(yieldzh_fast)
@@
-3814,14
+3822,24
@@
static int ocResolve_MachO(ObjectCode* oc)
static void machoInitSymbolsWithoutUnderscore()
{
static void machoInitSymbolsWithoutUnderscore()
{
- void *p;
+ extern void* symbolsWithoutUnderscore[];
+ void **p = symbolsWithoutUnderscore;
+ __asm__ volatile(".data\n_symbolsWithoutUnderscore:");
#undef Sym
#undef Sym
-#define Sym(x) \
- __asm__ ("lis %0,hi16(" #x ")\n\tori %0,%0,lo16(" #x ")" : "=r" (p)); \
- ghciInsertStrHashTable("(GHCi built-in symbols)", symhash, #x, p);
+#define Sym(x) \
+ __asm__ volatile(".long " # x);
RTS_MACHO_NOUNDERLINE_SYMBOLS
RTS_MACHO_NOUNDERLINE_SYMBOLS
+ __asm__ volatile(".text");
+
+#undef Sym
+#define Sym(x) \
+ ghciInsertStrHashTable("(GHCi built-in symbols)", symhash, #x, *p++);
+
+ RTS_MACHO_NOUNDERLINE_SYMBOLS
+
+#undef Sym
}
#endif
}
#endif