[GHC] #7383: implement proper type promotion in compilation of C calls
GHC
cvs-ghc at haskell.org
Thu Nov 1 21:38:27 CET 2012
#7383: implement proper type promotion in compilation of C calls
---------------------------------+------------------------------------------
Reporter: igloo | Owner:
Type: bug | Status: new
Priority: high | Milestone: 7.8.1
Component: Compiler | Version: 7.6.1
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
{{{
> commit 229323898b0809047b19b79c181085430cce9850
> Author: Ian Lynagh <ian at well-typed.com>
> Date: Thu Nov 1 14:13:05 2012 +0000
>
> Fix popcnt calls
>
> We don't want to narrow the argument size before making the foreign
> call: Word8 still gets passed as a Word-sized argument
I'm not sure this is right (I added the narrowing, FWIW). The fact that
Word8 gets promoted to Word is part of the C ABI, and we don't want to
do that when popcnt is being implemented directly by the native codegen.
I know it is currently broken on some platforms, but I think the fix
is to implement the proper type promotion in the compilation of C calls.
}}}
A useful test for this is cgrun071. If we get it wrong then it fails on
x86, as the stack alignment is wrong when calling e.g. `popCnt8#`.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7383>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list