Commit 69f98b8f authored by Ian Lynagh's avatar Ian Lynagh
Browse files

Fix stg_block_async on unreg compilers

This is only defined on Windows, so hadn't come up in our Linux
unreg builds.
parent 97c24cdd
......@@ -679,10 +679,16 @@ INFO_TABLE_RET( stg_block_async, RET_SMALL, W_ unused )
len = StgAsyncIOResult_len(ares);
errC = StgAsyncIOResult_errCode(ares);
foreign "C" free(ares "ptr");
#ifdef GhcUnregisterised
Sp(1) = errC;
Sp(0) = len;
jump %ENTRY_CODE(Sp(2));
#else
R1 = len;
Sp_adj(1);
Sp(0) = errC;
jump %ENTRY_CODE(Sp(1));
#endif
}
stg_block_async
......
......@@ -311,6 +311,10 @@ rts/RtsUtils_CC_OPTS += -DTargetVendor=\"$(TargetVendor_CPP)\"
rts/RtsUtils_CC_OPTS += -DGhcUnregisterised=\"$(GhcUnregisterised)\"
rts/RtsUtils_CC_OPTS += -DGhcEnableTablesNextToCode=\"$(GhcEnableTablesNextToCode)\"
ifeq "$(GhcUnregisterised)" "YES"
rts/HeapStackCheck_HC_OPTS += -DGhcUnregisterised=1
endif
# Compile various performance-critical pieces *without* -fPIC -dynamic
# even when building a shared library. If we don't do this, then the
# GC runs about 50% slower on x86 due to the overheads of PIC. The
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment