summaryrefslogtreecommitdiff
path: root/rts/Adjustor.c
diff options
context:
space:
mode:
authorPeter Trommler <ptrommler@acm.org>2018-12-30 22:23:53 +0100
committerBen Gamari <ben@smart-cactus.org>2019-01-01 11:44:16 -0500
commit374e44704b64afafc1179127e6c9c5bf1715ef39 (patch)
treee55962e8ac605a6762a18e30c8614d772effb2eb /rts/Adjustor.c
parentae4f1033cfe131fca9416e2993bda081e1f8c152 (diff)
downloadhaskell-374e44704b64afafc1179127e6c9c5bf1715ef39.tar.gz
PPC NCG: Remove Darwin support
Support for Mac OS X on PowerPC has been dropped by Apple years ago. We follow suit and remove PowerPC support for Darwin. Fixes #16106.
Diffstat (limited to 'rts/Adjustor.c')
-rw-r--r--rts/Adjustor.c32
1 files changed, 4 insertions, 28 deletions
diff --git a/rts/Adjustor.c b/rts/Adjustor.c
index 476d63140e..d360cfe87b 100644
--- a/rts/Adjustor.c
+++ b/rts/Adjustor.c
@@ -287,32 +287,12 @@ extern void obscure_ccall_ret_code(void);
*/
typedef struct AdjustorStub {
-#if defined(powerpc_HOST_ARCH) && defined(darwin_HOST_OS)
- unsigned lis;
- unsigned ori;
- unsigned lwz;
- unsigned mtctr;
- unsigned bctr;
- StgFunPtr code;
-#elif defined(powerpc64_HOST_ARCH) && defined(darwin_HOST_OS)
- /* powerpc64-darwin: just guessing that it won't use fundescs. */
- unsigned lis;
- unsigned ori;
- unsigned rldimi;
- unsigned oris;
- unsigned ori2;
- unsigned lwz;
- unsigned mtctr;
- unsigned bctr;
- StgFunPtr code;
-#else
/* fundesc-based ABIs */
#define FUNDESCS
StgFunPtr code;
struct AdjustorStub
*toc;
void *env;
-#endif
StgStablePtr hptr;
StgFunPtr wptr;
StgInt negative_framesize;
@@ -1036,20 +1016,16 @@ TODO: Depending on how much allocation overhead stgMallocBytes uses for
whose stack layout is based on the AIX ABI.
Besides (obviously) AIX, this includes
- Mac OS 9 and BeOS/PPC (may they rest in peace),
+ Mac OS 9 and BeOS/PPC and Mac OS X PPC (may they rest in peace),
which use the 32-bit AIX ABI
powerpc64-linux,
- which uses the 64-bit AIX ABI
- and Darwin (Mac OS X),
- which uses the same stack layout as AIX,
- but no function descriptors.
+ which uses the 64-bit AIX ABI.
The actual stack-frame shuffling is implemented out-of-line
in the function adjustorCode, in AdjustorAsm.S.
Here, we set up an AdjustorStub structure, which
- is a function descriptor (on platforms that have function
- descriptors) or a short piece of stub code (on Darwin) to call
- adjustorCode with a pointer to the AdjustorStub struct loaded
+ is a function descriptor with a pointer to the AdjustorStub
+ struct in the position of the TOC that is loaded
into register r2.
One nice thing about this is that there is _no_ code generated at