= 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).
\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
#else
checkFEDArgs arg_tys = returnNF_Tc ()
#endif
-#endif
\end{code}