[project @ 2002-07-19 11:48:20 by simonmar]
authorsimonmar <unknown>
Fri, 19 Jul 2002 11:48:20 +0000 (11:48 +0000)
committersimonmar <unknown>
Fri, 19 Jul 2002 11:48:20 +0000 (11:48 +0000)
Remove the check for >4 args when doing a foreign import "wrapper" on
Sparc: we support unlimited arguments now (from Sven Panne).

ghc/compiler/typecheck/TcForeign.lhs

index b2ddda6..ebae77a 100644 (file)
@@ -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}