diff options
author | Peter Trommler <ptrommler@acm.org> | 2018-12-30 22:23:53 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-01-01 11:44:16 -0500 |
commit | 374e44704b64afafc1179127e6c9c5bf1715ef39 (patch) | |
tree | e55962e8ac605a6762a18e30c8614d772effb2eb /rts/Adjustor.c | |
parent | ae4f1033cfe131fca9416e2993bda081e1f8c152 (diff) | |
download | haskell-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.c | 32 |
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 |