Commit 542e4d92 authored by simonmar's avatar simonmar

[project @ 2002-07-19 11:48:20 by simonmar]

Remove the check for >4 args when doing a foreign import "wrapper" on
Sparc: we support unlimited arguments now (from Sven Panne).
parent 5926dc51
......@@ -151,13 +151,8 @@ checkCTarget (CasmTarget _)
= checkCg checkC
\end{code}
On a SPARC, with foreign export dynamic, due to a giant hack when building
adjustor thunks, we only allow 16 bytes of arguments!
So for example, args (Int,Double,Int) would be OK (1+2+1)
as would (Int,Int,Int,Int) (1+1+1+1) but not (Int,Double,Double) (1+2+2).
On an Alpha, due to a similar hack, we only allow 4 integer arguments with
On an Alpha, with foreign export dynamic, due to a giant hack when
building adjustor thunks, we only allow 4 integer arguments with
foreign export dynamic (i.e., 32 bytes of arguments after padding each
argument to a quadword, excluding floating-point arguments).
......@@ -165,13 +160,6 @@ The check is needed for both via-C and native-code routes
\begin{code}
#include "nativeGen/NCG.h"
#if sparc_TARGET_ARCH
checkFEDArgs arg_tys
= check (words_of_args <= 4) err
where
words_of_args = sum (map (getPrimRepSize . typePrimRep) arg_tys)
err = ptext SLIT("On SPARC, I can only handle 4 words of arguments to foreign export dynamic")
#else
#if alpha_TARGET_ARCH
checkFEDArgs arg_tys
= check (integral_args <= 4) err
......@@ -183,7 +171,6 @@ checkFEDArgs arg_tys
#else
checkFEDArgs arg_tys = returnNF_Tc ()
#endif
#endif
\end{code}
......
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