From e0fcf61dca4dfac99cb5417e1bc4cbee18822cf2 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Tue, 8 Apr 2008 18:34:34 +0000 Subject: [PATCH] Import libffi-3.0.4, and use it to provide FFI support in GHCi This replaces the hand-rolled architecture-specific FFI support in GHCi with the standard libffi as used in GCJ, Python and other projects. I've bundled the complete libffi-3.0.4 tarball in the source tree in the same way as we do for GMP, the difference being that we always build and install our own libffi regardless of whether there's one on the system (it's small, and we don't want dependency/versioning headaches). In particular this means that unregisterised builds will now have a fully working GHCi including FFI out of the box, provided libffi supports the platform. There is also code in the RTS to use libffi in place of rts/Adjustor.c, but it is currently not enabled if we already have support in Adjustor.c for the current platform. We need to assess the performance impact before using libffi here too (in GHCi we don't care too much about performance). --- Makefile | 6 +- compiler/Makefile | 10 +- compiler/ghci/ByteCodeFFI.lhs | 849 +---------------------------------------- compiler/ghci/ByteCodeGen.lhs | 10 - compiler/ghci/LibFFI.hsc | 8 - libffi/Makefile | 124 ++++++ libffi/libffi-3.0.4.tar.gz | Bin 0 -> 722782 bytes rts/Adjustor.c | 6 +- rts/Interpreter.c | 17 +- rts/Linker.c | 18 + rts/Makefile | 23 +- rts/package.conf.in | 5 +- 12 files changed, 169 insertions(+), 907 deletions(-) create mode 100644 libffi/Makefile create mode 100644 libffi/libffi-3.0.4.tar.gz diff --git a/Makefile b/Makefile index e6d9866..870e0c4 100644 --- a/Makefile +++ b/Makefile @@ -67,12 +67,12 @@ include $(TOP)/mk/boilerplate.mk # We can't 'make boot' in libraries until stage1 is built ifeq "$(BootingFromHc)" "YES" -SUBDIRS_BUILD = gmp includes rts compat compiler docs utils driver +SUBDIRS_BUILD = gmp libffi includes rts compat compiler docs utils driver else -SUBDIRS_BUILD = gmp includes compat utils driver docs compiler rts libraries/Cabal/doc +SUBDIRS_BUILD = gmp libffi includes compat utils driver docs compiler rts libraries/Cabal/doc endif -SUBDIRS = gmp includes compat utils driver docs rts libraries compiler libraries/Cabal/doc +SUBDIRS = gmp libffi includes compat utils driver docs rts libraries compiler libraries/Cabal/doc # Sanity check that all the boot libraries are in the tree, to catch # failure to run darcs-all. diff --git a/compiler/Makefile b/compiler/Makefile index 2dd6203..216e5f8 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -308,7 +308,7 @@ else @echo "cRelocatableBuild = False" >> $(CONFIG_HS) endif @echo "cLibFFI :: Bool" >> $(CONFIG_HS) -ifeq "$(UseLibFFI)" "YES" +ifeq "$(UseLibFFIForAdjustors)" "YES" @echo "cLibFFI = True" >> $(CONFIG_HS) else @echo "cLibFFI = False" >> $(CONFIG_HS) @@ -457,11 +457,6 @@ ALL_DIRS += javaGen SRC_HC_OPTS += -DJAVA endif -ifeq ($(UseLibFFI),YES) -SRC_HC_OPTS += -DUSE_LIBFFI -SRC_HSC2HS_OPTS += -DUSE_LIBFFI -endif - ifeq "$(BootingFromHc)" "YES" # HC files are always from a self-booted compiler bootstrapped = YES @@ -517,6 +512,9 @@ ifeq "$(GhcDebugged)" "YES" SRC_LD_OPTS += -debug endif +SRC_HC_OPTS += -I$(FPTOOLS_TOP)/libffi/build/include +SRC_HSC2HS_OPTS += -I$(FPTOOLS_TOP)/libffi/build/include + ALL_DIRS += ghci # If we are going to use dynamic libraries instead of .o files for ghci, diff --git a/compiler/ghci/ByteCodeFFI.lhs b/compiler/ghci/ByteCodeFFI.lhs index d72f1ac..5c2b35f 100644 --- a/compiler/ghci/ByteCodeFFI.lhs +++ b/compiler/ghci/ByteCodeFFI.lhs @@ -1,19 +1,10 @@ % -% (c) The University of Glasgow 2001-2006 +% (c) The University of Glasgow 2001-2008 % ByteCodeGen: Generate machine-code sequences for foreign import \begin{code} -{-# OPTIONS -w #-} --- The above warning supression flag is a temporary kludge. --- While working on this module you are encouraged to remove it and fix --- any warnings in the module. See --- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings --- for details - -#ifdef USE_LIBFFI - module ByteCodeFFI ( moan64, newExec ) where import Outputable @@ -21,844 +12,6 @@ import System.IO import Foreign import Foreign.C -#else - -module ByteCodeFFI ( mkMarshalCode, moan64, newExec ) where - -#include "HsVersions.h" - -import TyCon -import Outputable -import SMRep -import ForeignCall -import Panic - --- DON'T remove apparently unused imports here .. --- there is ifdeffery below -import Control.Exception ( throwDyn ) -import Data.Bits ( Bits(..), shiftR, shiftL ) -import Data.List ( mapAccumL ) - -import Data.Word ( Word8, Word32 ) -import Foreign ( Ptr, FunPtr, castPtrToFunPtr, - Storable, sizeOf, pokeArray ) -import Foreign.C ( CUInt ) -import System.IO.Unsafe ( unsafePerformIO ) -import System.IO ( hPutStrLn, stderr ) --- import Debug.Trace ( trace ) -\end{code} - -%************************************************************************ -%* * -\subsection{The platform-dependent marshall-code-generator.} -%* * -%************************************************************************ - -\begin{code} - --- For sparc_TARGET_ARCH, i386_TARGET_ARCH, etc. -#include "nativeGen/NCG.h" - -{- -Make a piece of code which expects to see the Haskell stack -looking like this. It is given a pointer to the lowest word in -the stack -- presumably the tag of the placeholder. - - - ... - - Addr# address_of_C_fn - (must be an unboxed type) - -We cope with both ccall and stdcall for the C fn. However, this code -itself expects only to be called using the ccall convention -- that is, -we don't clear our own (single) arg off the C stack. --} -mkMarshalCode :: CCallConv - -> (Int, PrimRep) -> Int -> [(Int, PrimRep)] - -> IO (FunPtr ()) -mkMarshalCode cconv (r_offW, r_rep) addr_offW arg_offs_n_reps - = let bytes = mkMarshalCode_wrk cconv (r_offW, r_rep) - addr_offW arg_offs_n_reps - in newExec bytes - -mkMarshalCode_wrk :: CCallConv - -> (Int, PrimRep) -> Int -> [(Int, PrimRep)] - -> [Word8] - -mkMarshalCode_wrk cconv (r_offW, r_rep) addr_offW arg_offs_n_reps - -#if i386_TARGET_ARCH - - = let -- Don't change this without first consulting Intel Corp :-) - bytes_per_word = 4 - - offsets_to_pushW - = concat - [ -- reversed because x86 is little-endian - reverse [a_offW .. a_offW + primRepSizeW a_rep - 1] - - -- reversed because args are pushed L -> R onto C stack - | (a_offW, a_rep) <- reverse arg_offs_n_reps - ] - - arguments_size = bytes_per_word * length offsets_to_pushW -#if darwin_TARGET_OS - -- Darwin: align stack frame size to a multiple of 16 bytes - stack_frame_size = (arguments_size + 15) .&. complement 15 - stack_frame_pad = stack_frame_size - arguments_size -#else - stack_frame_size = arguments_size -#endif - - -- some helpers to assemble x86 insns. - movl_offespmem_esi offB -- movl offB(%esp), %esi - = [0x8B, 0xB4, 0x24] ++ lit32 offB - movl_offesimem_ecx offB -- movl offB(%esi), %ecx - = [0x8B, 0x8E] ++ lit32 offB - save_regs -- pushl all intregs except %esp - = [0x50, 0x53, 0x51, 0x52, 0x56, 0x57, 0x55] - restore_regs -- popl ditto - = [0x5D, 0x5F, 0x5E, 0x5A, 0x59, 0x5B, 0x58] - pushl_ecx -- pushl %ecx - = [0x51] - call_star_ecx -- call * %ecx - = [0xFF, 0xD1] - add_lit_esp lit -- addl $lit, %esp - = [0x81, 0xC4] ++ lit32 lit - movl_eax_offesimem offB -- movl %eax, offB(%esi) - = [0x89, 0x86] ++ lit32 offB - movl_edx_offesimem offB -- movl %edx, offB(%esi) - = [0x89, 0x96] ++ lit32 offB - ret -- ret - = [0xC3] - fstpl_offesimem offB -- fstpl offB(%esi) - = [0xDD, 0x9E] ++ lit32 offB - fstps_offesimem offB -- fstps offB(%esi) - = [0xD9, 0x9E] ++ lit32 offB - {- - 2 0000 8BB42478 movl 0x12345678(%esp), %esi - 2 563412 - 3 0007 8B8E7856 movl 0x12345678(%esi), %ecx - 3 3412 - 4 - 5 000d 50535152 pushl %eax ; pushl %ebx ; pushl %ecx ; pushl %edx - 6 0011 565755 pushl %esi ; pushl %edi ; pushl %ebp - 7 - 8 0014 5D5F5E popl %ebp ; popl %edi ; popl %esi - 9 0017 5A595B58 popl %edx ; popl %ecx ; popl %ebx ; popl %eax - 10 - 11 001b 51 pushl %ecx - 12 001c FFD1 call * %ecx - 13 - 14 001e 81C47856 addl $0x12345678, %esp - 14 3412 - 15 0024 89867856 movl %eax, 0x12345678(%esi) - 15 3412 - 16 002a 89967856 movl %edx, 0x12345678(%esi) - 16 3412 - 17 - 18 0030 DD967856 fstl 0x12345678(%esi) - 18 3412 - 19 0036 DD9E7856 fstpl 0x12345678(%esi) - 19 3412 - 20 003c D9967856 fsts 0x12345678(%esi) - 20 3412 - 21 0042 D99E7856 fstps 0x12345678(%esi) - 18 - 19 0030 C3 ret - 20 - - -} - - in - --trace (show (map fst arg_offs_n_reps)) - ( - {- On entry, top of C stack 0(%esp) is the RA and 4(%esp) is - arg passed from the interpreter. - - Push all callee saved regs. Push all of them anyway ... - pushl %eax - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi - pushl %ebp - -} - save_regs - - {- Now 28+0(%esp) is RA and 28+4(%esp) is the arg (the H stack ptr). - We'll use %esi as a temporary to point at the H stack, and - %ecx as a temporary to copy via. - - movl 28+4(%esp), %esi - -} - ++ movl_offespmem_esi 32 - -#if darwin_TARGET_OS - {- On Darwin, add some padding so that the stack stays aligned. -} - ++ (if stack_frame_pad /= 0 - then add_lit_esp (-stack_frame_pad) - else []) -#endif - - {- For each arg in args_offs_n_reps, examine the associated - CgRep to determine how many words there are. This gives a - bunch of offsets on the H stack to copy to the C stack: - - movl off1(%esi), %ecx - pushl %ecx - -} - ++ concatMap (\offW -> movl_offesimem_ecx (bytes_per_word * offW) - ++ pushl_ecx) - offsets_to_pushW - - {- Get the addr to call into %ecx, bearing in mind that there's - an Addr# tag at the indicated location, and do the call: - - movl 4*(1 /*tag*/ +addr_offW)(%esi), %ecx - call * %ecx - -} - ++ movl_offesimem_ecx (bytes_per_word * addr_offW) - ++ call_star_ecx - - {- Nuke the args just pushed and re-establish %esi at the - H-stack ptr: - - addl $4*number_of_args_pushed, %esp (ccall only) - movl 28+4(%esp), %esi - -} - ++ (if cconv /= StdCallConv - then add_lit_esp stack_frame_size - else []) - ++ movl_offespmem_esi 32 - - {- Depending on what the return type is, get the result - from %eax or %edx:%eax or %st(0). - - movl %eax, 4(%esi) -- assuming tagged result - or - movl %edx, 4(%esi) - movl %eax, 8(%esi) - or - fstpl 4(%esi) - or - fstps 4(%esi) - -} - ++ let i32 = movl_eax_offesimem 0 - i64 = movl_eax_offesimem 0 ++ movl_edx_offesimem 4 - f32 = fstps_offesimem 0 - f64 = fstpl_offesimem 0 - in - case r_rep of - VoidRep -> [] - IntRep -> i32 - WordRep -> i32 - Int64Rep -> i64 - Word64Rep -> i64 - AddrRep -> i32 - FloatRep -> f32 - DoubleRep -> f64 - other -> moan64 "ByteCodeFFI.mkMarshalCode_wrk(x86)" - (ppr r_rep) - - {- Restore all the pushed regs and go home. - - pushl %ebp - pushl %edi - pushl %esi - pushl %edx - pushl %ecx - pushl %ebx - pushl %eax - - ret - -} - ++ restore_regs - ++ ret - ) - -#elif x86_64_TARGET_ARCH - - = - -- the address of the H stack is in %rdi. We need to move it out, so - -- we can use %rdi as an arg reg for the following call: - pushq_rbp ++ - movq_rdi_rbp ++ - - -- ####### load / push the args - - let - (stack_args, fregs_unused, reg_loads) = - load_arg_regs arg_offs_n_reps int_loads float_loads [] - - tot_arg_size = bytes_per_word * length stack_args - - -- On entry to the called function, %rsp should be aligned - -- on a 16-byte boundary +8 (i.e. the first stack arg after - -- the return address is 16-byte aligned). In STG land - -- %rsp is kept 16-byte aligned (see StgCRun.c), so we just - -- need to make sure we push a multiple of 16-bytes of args, - -- plus the return address, to get the correct alignment. - (real_size, adjust_rsp) - | tot_arg_size `rem` 16 == 0 = (tot_arg_size, []) - | otherwise = (tot_arg_size + 8, subq_lit_rsp 8) - - (stack_pushes, stack_words) = - push_args stack_args [] 0 - - -- we need to know the number of SSE regs used in the call, see later - n_sse_regs_used = length float_loads - length fregs_unused - in - concat reg_loads - ++ adjust_rsp - ++ concat stack_pushes -- push in reverse order - - -- ####### make the call - - -- use %r10 to make the call, because we don't have to save it. - -- movq 8*addr_offW(%rbp), %r10 - ++ movq_rbpoff_r10 (bytes_per_word * addr_offW) - - -- The x86_64 ABI requires us to set %al to the number of SSE - -- registers that contain arguments, if the called routine - -- is a varargs function. We don't know whether it's a - -- varargs function or not, so we have to assume it is. - -- - -- It's not safe to omit this assignment, even if the number - -- of SSE regs in use is zero. If %al is larger than 8 - -- on entry to a varargs function, seg faults ensue. - ++ movq_lit_rax n_sse_regs_used - ++ call_star_r10 - - -- pop the args from the stack, only in ccall mode - -- (in stdcall the callee does it). - ++ (if cconv /= StdCallConv - then addq_lit_rsp real_size - else []) - - -- ####### place the result in the right place and return - - ++ assign_result - ++ popq_rbp - ++ ret - - where - bytes_per_word = 8 - - -- int arg regs: rdi,rsi,rdx,rcx,r8,r9 - -- flt arg regs: xmm0..xmm7 - int_loads = [ movq_rbpoff_rdi, movq_rbpoff_rsi, movq_rbpoff_rdx, - movq_rbpoff_rcx, movq_rbpoff_r8, movq_rbpoff_r9 ] - float_loads = [ 0..7 ] - - load_arg_regs args [] [] code = (args, [], code) - load_arg_regs [] iregs fregs code = ([], fregs, code) - load_arg_regs ((off,rep):args) iregs fregs code - | FloatRep <- rep = - case fregs of - [] -> push_this_arg - n : frest -> - load_arg_regs args iregs frest - (mov_f32_rbpoff_xmm n (bytes_per_word * off) : code) - | DoubleRep <- rep = - case fregs of - [] -> push_this_arg - n : frest -> - load_arg_regs args iregs frest - (mov_f64_rbpoff_xmm n (bytes_per_word * off) : code) - | (mov_reg:irest) <- iregs = - load_arg_regs args irest fregs (mov_reg (bytes_per_word * off) : code) - | otherwise = - push_this_arg - where - push_this_arg = ((off,rep):args',fregs', code') - where (args',fregs',code') = load_arg_regs args iregs fregs code - - push_args [] code pushed_words = (code, pushed_words) - push_args ((off,rep):args) code pushed_words - | FloatRep <- rep = - push_args args (push_f32_rbpoff (bytes_per_word * off) : code) - (pushed_words+1) - | DoubleRep <- rep = - push_args args (push_f64_rbpoff (bytes_per_word * off) : code) - (pushed_words+1) - | otherwise = - push_args args (pushq_rbpoff (bytes_per_word * off) : code) - (pushed_words+1) - - - assign_result = - case r_rep of - DoubleRep -> f64 - FloatRep -> f32 - VoidRep -> [] - _other -> i64 - where - i64 = movq_rax_rbpoff 0 - f32 = mov_f32_xmm0_rbpoff 0 - f64 = mov_f64_xmm0_rbpoff 0 - --- ######### x86_64 machine code: - --- 0: 48 89 fd mov %rdi,%rbp --- 3: 48 8b bd 78 56 34 12 mov 0x12345678(%rbp),%rdi --- a: 48 8b b5 78 56 34 12 mov 0x12345678(%rbp),%rsi --- 11: 48 8b 95 78 56 34 12 mov 0x12345678(%rbp),%rdx --- 18: 48 8b 8d 78 56 34 12 mov 0x12345678(%rbp),%rcx --- 1f: 4c 8b 85 78 56 34 12 mov 0x12345678(%rbp),%r8 --- 26: 4c 8b 8d 78 56 34 12 mov 0x12345678(%rbp),%r9 --- 2d: 4c 8b 95 78 56 34 12 mov 0x12345678(%rbp),%r10 --- 34: 48 c7 c0 78 56 34 12 mov $0x12345678,%rax --- 3b: 48 89 85 78 56 34 12 mov %rax,0x12345678(%rbp) --- 42: f3 0f 10 bd 78 56 34 12 movss 0x12345678(%rbp),%xmm7 --- 4a: f2 0f 10 9d 78 56 34 12 movsd 0x12345678(%rbp),%xmm3 --- 52: f2 44 0f 10 85 78 56 34 12 movsd 0x12345678(%rbp),%xmm8 --- 5b: f3 0f 11 9d 78 56 34 12 movss %xmm3,0x12345678(%rbp) --- 63: f2 0f 11 9d 78 56 34 12 movsd %xmm3,0x12345678(%rbp) --- 6b: f2 44 0f 11 85 78 56 34 12 movsd %xmm8,0x12345678(%rbp) --- 74: ff b5 78 56 34 12 pushq 0x12345678(%rbp) --- 7a: f3 44 0f 11 04 24 movss %xmm8,(%rsp) --- 80: f2 44 0f 11 04 24 movsd %xmm8,(%rsp) --- 86: 48 81 ec 78 56 34 12 sub $0x12345678,%rsp --- 8d: 48 81 c4 78 56 34 12 add $0x12345678,%rsp --- 94: 41 ff d2 callq *%r10 --- 97: 55 push %rbp --- 98: 5d pop %rbp --- 99: c3 retq - - movq_rdi_rbp = [0x48,0x89,0xfd] - movq_rbpoff_rdi off = [0x48, 0x8b, 0xbd] ++ lit32 off - movq_rbpoff_rsi off = [0x48, 0x8b, 0xb5] ++ lit32 off - movq_rbpoff_rdx off = [0x48, 0x8b, 0x95] ++ lit32 off - movq_rbpoff_rcx off = [0x48, 0x8b, 0x8d] ++ lit32 off - movq_rbpoff_r8 off = [0x4c, 0x8b, 0x85] ++ lit32 off - movq_rbpoff_r9 off = [0x4c, 0x8b, 0x8d] ++ lit32 off - movq_rbpoff_r10 off = [0x4c, 0x8b, 0x95] ++ lit32 off - movq_lit_rax lit = [0x48, 0xc7, 0xc0] ++ lit32 lit - movq_rax_rbpoff off = [0x48, 0x89, 0x85] ++ lit32 off - mov_f32_rbpoff_xmm n off - = 0xf3 : if n >= 8 then 0x44 : rest else rest - where rest = [0x0f, 0x10, 0x85 + (n.&.7)`shiftL`3] ++ lit32 off - mov_f64_rbpoff_xmm n off - = 0xf2 : if n >= 8 then 0x44 : rest else rest - where rest = [0x0f, 0x10, 0x85 + (n.&.7)`shiftL`3] ++ lit32 off - mov_f32_xmm0_rbpoff off = [0xf3, 0x0f, 0x11, 0x85] ++ lit32 off - mov_f64_xmm0_rbpoff off = [0xf2, 0x0f, 0x11, 0x85] ++ lit32 off - pushq_rbpoff off = [0xff, 0xb5] ++ lit32 off - push_f32_rbpoff off = - subq_lit_rsp 8 ++ -- subq $8, %rsp - mov_f32_rbpoff_xmm 8 off ++ -- movss off(%rbp), %xmm8 - [0xf3, 0x44, 0x0f, 0x11, 0x04, 0x24] -- movss %xmm8, (%rsp) - push_f64_rbpoff off = - subq_lit_rsp 8 ++ -- subq $8, %rsp - mov_f64_rbpoff_xmm 8 off ++ -- movsd off(%rbp), %xmm8 - [0xf2, 0x44, 0x0f, 0x11, 0x04, 0x24] -- movsd %xmm8, (%rsp) - subq_lit_rsp lit = [0x48, 0x81, 0xec] ++ lit32 lit - addq_lit_rsp lit = [0x48, 0x81, 0xc4] ++ lit32 lit - call_star_r10 = [0x41,0xff,0xd2] - ret = [0xc3] - pushq_rbp = [0x55] - popq_rbp = [0x5d] - -#elif sparc_TARGET_ARCH - - = let -- At least for sparc V8 - bytes_per_word = 4 - - -- speaks for itself - w32_to_w8s_bigEndian :: Word32 -> [Word8] - w32_to_w8s_bigEndian w - = [fromIntegral (0xFF .&. (w `shiftR` 24)), - fromIntegral (0xFF .&. (w `shiftR` 16)), - fromIntegral (0xFF .&. (w `shiftR` 8)), - fromIntegral (0xFF .&. w)] - - offsets_to_pushW - = concat - [ [a_offW .. a_offW + primRepSizeW a_rep - 1] - - | (a_offW, a_rep) <- arg_offs_n_reps - ] - - total_argWs = length offsets_to_pushW - argWs_on_stack = if total_argWs > 6 then total_argWs - 6 - else 0 - - -- The stack pointer must be kept 8-byte aligned, which means - -- we need to calculate this quantity too - argWs_on_stack_ROUNDED_UP - | odd argWs_on_stack = 1 + argWs_on_stack - | otherwise = argWs_on_stack - - -- some helpers to assemble sparc insns. - -- REGS - iReg, oReg, gReg, fReg :: Int -> Word32 - iReg = fromIntegral . (+ 24) - oReg = fromIntegral . (+ 8) - gReg = fromIntegral . (+ 0) - fReg = fromIntegral - - sp = oReg 6 - i0 = iReg 0 - i7 = iReg 7 - o0 = oReg 0 - o1 = oReg 1 - o7 = oReg 7 - g0 = gReg 0 - g1 = gReg 1 - f0 = fReg 0 - f1 = fReg 1 - - -- INSN templates - insn_r_r_i :: Word32 -> Word32 -> Word32 -> Int -> Word32 - insn_r_r_i op3 rs1 rd imm13 - = (3 `shiftL` 30) - .|. (rs1 `shiftL` 25) - .|. (op3 `shiftL` 19) - .|. (rd `shiftL` 14) - .|. (1 `shiftL` 13) - .|. mkSimm13 imm13 - - insn_r_i_r :: Word32 -> Word32 -> Int -> Word32 -> Word32 - insn_r_i_r op3 rs1 imm13 rd - = (2 `shiftL` 30) - .|. (rd `shiftL` 25) - .|. (op3 `shiftL` 19) - .|. (rs1 `shiftL` 14) - .|. (1 `shiftL` 13) - .|. mkSimm13 imm13 - - mkSimm13 :: Int -> Word32 - mkSimm13 imm13 - = let imm13w = (fromIntegral imm13) :: Word32 - in imm13w .&. 0x1FFF - - -- REAL (non-synthetic) insns - -- or %rs1, %rs2, %rd - mkOR :: Word32 -> Word32 -> Word32 -> Word32 - mkOR rs1 rs2 rd - = (2 `shiftL` 30) - .|. (rd `shiftL` 25) - .|. (op3_OR `shiftL` 19) - .|. (rs1 `shiftL` 14) - .|. (0 `shiftL` 13) - .|. rs2 - where op3_OR = 2 :: Word32 - - -- ld(int) [%rs + imm13], %rd - mkLD rs1 imm13 rd = insn_r_r_i 0x00{-op3_LD-} rd rs1 imm13 - - -- st(int) %rs, [%rd + imm13] - mkST = insn_r_r_i 0x04 -- op3_ST - - -- st(float) %rs, [%rd + imm13] - mkSTF = insn_r_r_i 0x24 -- op3_STF - - -- jmpl %rs + imm13, %rd - mkJMPL = insn_r_i_r 0x38 -- op3_JMPL - - -- save %rs + imm13, %rd - mkSAVE = insn_r_i_r 0x3C -- op3_SAVE - - -- restore %rs + imm13, %rd - mkRESTORE = insn_r_i_r 0x3D -- op3_RESTORE - - -- SYNTHETIC insns - mkNOP = mkOR g0 g0 g0 - mkCALL reg = mkJMPL reg 0 o7 - mkRET = mkJMPL i7 8 g0 - mkRESTORE_TRIVIAL = mkRESTORE g0 0 g0 - in - --trace (show (map fst arg_offs_n_reps)) - concatMap w32_to_w8s_bigEndian ( - - {- On entry, %o0 is the arg passed from the interpreter. After - the initial save insn, it will be in %i0. Studying the sparc - docs one would have thought that the minimum frame size is 92 - bytes, but gcc always uses at least 112, and indeed there are - segfaults a-plenty with 92. So I use 112 here as well. I - don't understand why, tho. - -} - [mkSAVE sp (- ({-92-}112 + 4*argWs_on_stack_ROUNDED_UP)) sp] - - {- For each arg in args_offs_n_reps, examine the associated - CgRep to determine how many words there are. This gives a - bunch of offsets on the H stack. Move the first 6 words into - %o0 .. %o5 and the rest on the stack, starting at [%sp+92]. - Use %g1 as a temp. - -} - ++ let doArgW (offW, wordNo) - | wordNo < 6 - = [mkLD i0 (bytes_per_word * offW) (oReg wordNo)] - | otherwise - = [mkLD i0 (bytes_per_word * offW) g1, - mkST g1 sp (92 + bytes_per_word * (wordNo - 6))] - in - concatMap doArgW (zip offsets_to_pushW [0 ..]) - - {- Get the addr to call into %g1, bearing in mind that there's - an Addr# tag at the indicated location, and do the call: - - ld [4*(1 /*tag*/ +addr_offW) + %i0], %g1 - call %g1 - -} - ++ [mkLD i0 (bytes_per_word * addr_offW) g1, - mkCALL g1, - mkNOP] - - {- Depending on what the return type is, get the result - from %o0 or %o1:%o0 or %f0 or %f1:%f0. - - st %o0, [%i0 + 4] -- 32 bit int - or - st %o0, [%i0 + 4] -- 64 bit int - st %o1, [%i0 + 8] -- or the other way round? - or - st %f0, [%i0 + 4] -- 32 bit float - or - st %f0, [%i0 + 4] -- 64 bit float - st %f1, [%i0 + 8] -- or the other way round? - - -} - ++ let i32 = [mkST o0 i0 0] - i64 = [mkST o0 i0 0, mkST o1 i0 4] - f32 = [mkSTF f0 i0 0] - f64 = [mkSTF f0 i0 0, mkSTF f1 i0 4] - in - case r_rep of - VoidRep -> [] - IntRep -> i32 - WordRep -> i32 - AddrRep -> i32 - FloatRep -> f32 - DoubleRep -> f64 - other -> moan64 "ByteCodeFFI.mkMarshalCode_wrk(sparc)" - (ppr r_rep) - - ++ [mkRET, - mkRESTORE_TRIVIAL] -- this is in the delay slot of the RET - ) -#elif powerpc_TARGET_ARCH && darwin_TARGET_OS - - = let - bytes_per_word = 4 - - -- speaks for itself - w32_to_w8s_bigEndian :: Word32 -> [Word8] - w32_to_w8s_bigEndian w - = [fromIntegral (0xFF .&. (w `shiftR` 24)), - fromIntegral (0xFF .&. (w `shiftR` 16)), - fromIntegral (0xFF .&. (w `shiftR` 8)), - fromIntegral (0xFF .&. w)] - - -- addr and result bits offsetsW - a_off = addr_offW * bytes_per_word - result_off = r_offW * bytes_per_word - - linkageArea = 24 - parameterArea = sum [ primRepSizeW a_rep * bytes_per_word - | (_, a_rep) <- arg_offs_n_reps ] - savedRegisterArea = 4 - frameSize = padTo16 (linkageArea + max parameterArea 32 + savedRegisterArea) - padTo16 x = case x `mod` 16 of - 0 -> x - y -> x - y + 16 - - pass_parameters [] _ _ = [] - pass_parameters ((a_offW, a_rep):args) nextFPR offsetW = - let - haskellArgOffset = a_offW * bytes_per_word - offsetW' = offsetW + primRepSizeW a_rep - - pass_word w - | offsetW + w < 8 = - [0x801f0000 -- lwz rX, src(r31) - .|. (fromIntegral src .&. 0xFFFF) - .|. (fromIntegral (offsetW+w+3) `shiftL` 21)] - | otherwise = - [0x801f0000 -- lwz r0, src(r31) - .|. (fromIntegral src .&. 0xFFFF), - 0x90010000 -- stw r0, dst(r1) - .|. (fromIntegral dst .&. 0xFFFF)] - where - src = haskellArgOffset + w*bytes_per_word - dst = linkageArea + (offsetW+w) * bytes_per_word - in - case a_rep of - FloatRep | nextFPR < 14 -> - (0xc01f0000 -- lfs fX, haskellArgOffset(r31) - .|. (fromIntegral haskellArgOffset .&. 0xFFFF) - .|. (fromIntegral nextFPR `shiftL` 21)) - : pass_parameters args (nextFPR+1) offsetW' - DoubleRep | nextFPR < 14 -> - (0xc81f0000 -- lfd fX, haskellArgOffset(r31) - .|. (fromIntegral haskellArgOffset .&. 0xFFFF) - .|. (fromIntegral nextFPR `shiftL` 21)) - : pass_parameters args (nextFPR+1) offsetW' - _ -> - concatMap pass_word [0 .. primRepSizeW a_rep - 1] - ++ pass_parameters args nextFPR offsetW' - - gather_result = case r_rep of - VoidRep -> [] - FloatRep -> - [0xd03f0000 .|. (fromIntegral result_off .&. 0xFFFF)] - -- stfs f1, result_off(r31) - DoubleRep -> - [0xd83f0000 .|. (fromIntegral result_off .&. 0xFFFF)] - -- stfd f1, result_off(r31) - _ | primRepSizeW r_rep == 2 -> - [0x907f0000 .|. (fromIntegral result_off .&. 0xFFFF), - 0x909f0000 .|. (fromIntegral (result_off+4) .&. 0xFFFF)] - -- stw r3, result_off(r31) - -- stw r4, result_off+4(r31) - _ | primRepSizeW r_rep == 1 -> - [0x907f0000 .|. (fromIntegral result_off .&. 0xFFFF)] - -- stw r3, result_off(r31) - in - concatMap w32_to_w8s_bigEndian $ [ - 0x7c0802a6, -- mflr r0 - 0x93e1fffc, -- stw r31,-4(r1) - 0x90010008, -- stw r0,8(r1) - 0x94210000 .|. (fromIntegral (-frameSize) .&. 0xFFFF), - -- stwu r1, -frameSize(r1) - 0x7c7f1b78 -- mr r31, r3 - ] ++ pass_parameters arg_offs_n_reps 1 0 ++ [ - 0x819f0000 .|. (fromIntegral a_off .&. 0xFFFF), - -- lwz r12, a_off(r31) - 0x7d8903a6, -- mtctr r12 - 0x4e800421 -- bctrl - ] ++ gather_result ++ [ - 0x80210000, -- lwz r1, 0(r1) - 0x83e1fffc, -- lwz r31, -4(r1) - 0x80010008, -- lwz r0, 8(r1) - 0x7c0803a6, -- mtlr r0 - 0x4e800020 -- blr - ] - -#elif powerpc_TARGET_ARCH && linux_TARGET_OS - - -- All offsets here are measured in Words (not bytes). This includes - -- arguments to the load/store machine code generators, alignment numbers - -- and the final 'framesize' among others. - - = concatMap w32_to_w8s_bigEndian $ [ - 0x7c0802a6, -- mflr r0 - 0x93e1fffc, -- stw r31,-4(r1) - 0x90010008, -- stw r0,8(r1) - 0x94210000 .|. offset (-framesize), -- stwu r1, -frameSize(r1) - 0x7c7f1b78 -- mr r31, r3 - ] ++ pass_parameters ++ -- pass the parameters - loadWord 12 addr_offW ++ [ -- lwz r12, a_off(r31) - 0x7d8903a6, -- mtctr r12 - 0x4e800421 -- bctrl - ] ++ gather_result ++ [ -- save the return value - 0x80210000, -- lwz r1, 0(r1) - 0x83e1fffc, -- lwz r31, -4(r1) - 0x80010008, -- lwz r0, 8(r1) - 0x7c0803a6, -- mtlr r0 - 0x4e800020 -- blr - ] - - where - gather_result :: [Word32] - gather_result = case r_rep of - VoidRep -> [] - FloatRep -> storeFloat 1 r_offW - DoubleRep -> storeDouble 1 r_offW - Int64Rep -> storeLong 3 r_offW - Word64Rep -> storeLong 3 r_offW - _ -> storeWord 3 r_offW - - pass_parameters :: [Word32] - pass_parameters = concat params - - -- vector aligned (4 word = 16 bytes) with 8 extra words of buffer space - framesize = alignedTo 4 (argsize + 8) - - ((_,_,argsize), params) = mapAccumL loadparam (3,1,2) arg_offs_n_reps - - -- handle one argument, returning machine code and the updated state - loadparam :: (Int, Int, Int) -> (Int, PrimRep) -> - ((Int, Int, Int), [Word32]) - - loadparam (gpr, fpr, stack) (ofs, rep) = case rep of - FloatRep | fpr <= 8 -> ( (gpr, fpr + 1, stack), loadFloat fpr ofs ) - FloatRep -> ( (gpr, fpr, stack + 1), stackWord stack ofs ) - - DoubleRep | fpr <= 8 -> ( (gpr, fpr + 1, stack), loadDouble fpr ofs ) - DoubleRep -> ( (gpr, fpr, astack + 2), stackLong astack ofs ) - - r | is64 r && even gpr -> loadparam (gpr + 1, fpr, stack) (ofs, rep) - r | is64 r && gpr <= 9 -> ( (gpr + 2, fpr, stack), loadLong gpr ofs ) - r | is64 r -> ( (gpr, fpr, astack + 2), stackLong astack ofs ) - _ | gpr <= 10 -> ( (gpr + 1, fpr, stack), loadWord gpr ofs ) - _ -> ( (gpr, fpr, stack + 1), stackWord stack ofs ) - where astack = alignedTo 2 stack - - is64 Int64Rep = True - is64 Word64Rep = True - is64 _ = False - - alignedTo :: Int -> Int -> Int - alignedTo alignment x = case x `mod` alignment of - 0 -> x - y -> x - y + alignment - - -- convenience macros to do multiple-instruction data moves - stackWord dst src = loadWord 0 src ++ storeWordC 0 dst - stackLong dst src = stackWord dst src ++ stackWord (dst + 1) (src + 1) - loadLong dst src = loadWord dst src ++ loadWord (dst + 1) (src + 1) - storeLong dst src = storeWord dst src ++ storeWord (dst + 1) (src + 1) - - -- load data from the Haskell stack (relative to r31) - loadFloat = loadstoreInstr 0xc01f0000 -- lfs fpr, ofs(r31) - loadDouble = loadstoreInstr 0xc81f0000 -- lfd fpr, ofs(r31) - loadWord = loadstoreInstr 0x801f0000 -- lwz gpr, ofs(r31) - - -- store data to the Haskell stack (relative to r31) - storeFloat = loadstoreInstr 0xd01f0000 -- stfs fpr, ofs(r31) - storeDouble = loadstoreInstr 0xd81f0000 -- stfd fpr, ofs(r31) - storeWord = loadstoreInstr 0x901f0000 -- stw gpr, ofs(r31) - - -- store data to the C stack (relative to r1) - storeWordC = loadstoreInstr 0x90010000 -- stw gpr, ofs(r1) - - -- machine code building blocks - loadstoreInstr :: Word32 -> Int -> Int -> [Word32] - loadstoreInstr code reg ofs = [ code .|. register reg .|. offset ofs ] - - register :: Int -> Word32 - register reg = fromIntegral reg `shiftL` 21 - - offset :: Int -> Word32 - offset ofs = fromIntegral (ofs * 4) .&. 0xFFFF - - -- speaks for itself - w32_to_w8s_bigEndian :: Word32 -> [Word8] - w32_to_w8s_bigEndian w = [fromIntegral (0xFF .&. (w `shiftR` 24)), - fromIntegral (0xFF .&. (w `shiftR` 16)), - fromIntegral (0xFF .&. (w `shiftR` 8)), - fromIntegral (0xFF .&. w)] - -#else - - = throwDyn (InstallationError "foreign import is not implemented for GHCi on this platform.") - -#endif - -#if i386_TARGET_ARCH || x86_64_TARGET_ARCH -lit32 :: Int -> [Word8] -lit32 i = let w32 = (fromIntegral i) :: Word32 - in map (fromIntegral . ( .&. 0xFF)) - [w32, w32 `shiftR` 8, - w32 `shiftR` 16, w32 `shiftR` 24] -#endif - -#endif /* !USE_LIBFFI */ - moan64 :: String -> SDoc -> a moan64 msg pp_rep = unsafePerformIO ( diff --git a/compiler/ghci/ByteCodeGen.lhs b/compiler/ghci/ByteCodeGen.lhs index 2e0079e..007f3eb 100644 --- a/compiler/ghci/ByteCodeGen.lhs +++ b/compiler/ghci/ByteCodeGen.lhs @@ -21,9 +21,7 @@ import ByteCodeItbls import ByteCodeAsm import ByteCodeLink import ByteCodeFFI -#ifdef USE_LIBFFI import LibFFI -#endif import Outputable import Name @@ -1063,19 +1061,11 @@ generateCCall d0 s p ccall_spec@(CCallSpec target cconv safety) fn args_r_to_l stk_offset = d_after_r - s -- in -#if !defined(USE_LIBFFI) - -- In the native case, we build marshalling code and attach the - -- address of that to the CCALL instruction - addr_of_marshaller <- ioToBc (mkMarshalCode cconv - (r_offW, r_rep) addr_offW - (zip args_offW a_reps)) -#else -- the only difference in libffi mode is that we prepare a cif -- describing the call type by calling libffi, and we attach the -- address of this to the CCALL instruction. token <- ioToBc $ prepForeignCall cconv a_reps r_rep let addr_of_marshaller = castPtrToFunPtr token -#endif recordItblMallocBc (ItblPtr (castFunPtrToPtr addr_of_marshaller)) let diff --git a/compiler/ghci/LibFFI.hsc b/compiler/ghci/LibFFI.hsc index 3708238..7f24d01 100644 --- a/compiler/ghci/LibFFI.hsc +++ b/compiler/ghci/LibFFI.hsc @@ -6,12 +6,6 @@ -- ----------------------------------------------------------------------------- -#ifndef USE_LIBFFI - -module LibFFI () where - -#else - #include module LibFFI ( @@ -142,5 +136,3 @@ foreign import ccall "ffi_prep_cif" -- -> Ptr () -- put result here -- -> Ptr (Ptr ()) -- arg values -- -> IO () - -#endif diff --git a/libffi/Makefile b/libffi/Makefile new file mode 100644 index 0000000..3a7cb69 --- /dev/null +++ b/libffi/Makefile @@ -0,0 +1,124 @@ + +TOP=.. + +include $(TOP)/mk/boilerplate.mk + +# ----------------------------------------------------------------------------- +# This Makefile is copied from the one we use for GMP in ../gmp. +# +# We use libffi's own configuration stuff. + +PLATFORM := $(shell echo $(HOSTPLATFORM) | sed 's/i[567]86/i486/g') + +# 2007-09-26 +# set -o igncr +# is not a valid command on non-Cygwin-systems. +# Let it fail silently instead of aborting the build. +# +# 2007-07-05 +# We do +# set -o igncr; export SHELLOPTS +# here as otherwise checking the size of limbs +# makes the build fall over on Cygwin. See the thread +# http://www.cygwin.com/ml/cygwin/2006-12/msg00011.html +# for more details. + +# 2007-07-05 +# Passing +# as_ln_s='cp -p' +# isn't sufficient to stop cygwin using symlinks the mingw gcc can't +# follow, as it isn't used consistently. Instead we put an ln.bat in +# path that always fails. + +LIBFFI_TARBALL := $(firstword $(wildcard libffi*.tar.gz)) +LIBFFI_DIR := $(subst .tar.gz,,$(LIBFFI_TARBALL)) + +ifeq "$(findstring dyn, $(GhcRTSWays))" "dyn" +BUILD_SHARED=yes +else +BUILD_SHARED=no +endif + +boot :: stamp.ffi.static +BINDIST_STAMPS = stamp.ffi.static +INSTALL_HEADERS += ffi.h +INSTALL_LIBS += libffi.a + +ifeq "$(BUILD_SHARED)" "yes" +boot :: stamp.ffi.shared +BINDIST_STAMPS += stamp.ffi.shared +INSTALL_LIBS += libffi.dll.a +INSTALL_PROGS += libffi-3.dll +endif + +install all :: $(INSTALL_HEADERS) $(INSTALL_LIBS) $(INSTALL_PROGS) + +stamp.ffi.static: + $(RM) -rf $(LIBFFI_DIR) build + $(TAR) -zxf $(LIBFFI_TARBALL) + mv $(LIBFFI_DIR) build +# chmod +x ln + (set -o igncr 2>/dev/null) && set -o igncr; export SHELLOPTS; \ + PATH=`pwd`:$$PATH; \ + export PATH; \ + cd build && \ + CC=$(WhatGccIsCalled) $(SHELL) configure \ + --enable-shared=no --host=$(PLATFORM) --build=$(PLATFORM) + touch $@ + +stamp.ffi.shared: + $(RM) -rf $(LIBFFI_DIR) build-shared + $(TAR) -zxf $(LIBFFI_TARBALL) + mv $(LIBFFI_DIR) build-shared +# chmod +x ln + (set -o igncr 2>/dev/null) && set -o igncr; export SHELLOPTS; \ + PATH=`pwd`:$$PATH; \ + export PATH; \ + cd build-shared && \ + CC=$(WhatGccIsCalled) $(SHELL) configure \ + --enable-shared=yes --disable-static --host=$(PLATFORM) --build=$(PLATFORM) + touch $@ + +ffi.h: stamp.ffi.static + $(CP) build/include/ffi.h . + +libffi.a: stamp.ffi.static + $(MAKE) -C build MAKEFLAGS= + $(CP) build/.libs/libffi.a . + $(RANLIB) libffi.a + +libffi-3.dll: stamp.ffi.shared + $(MAKE) -C build-shared MAKEFLAGS= + $(CP) build-shared/.libs/libffi-3.dll . + +libffi.dll.a: libffi-3.dll + $(CP) build-shared/.libs/libffi.dll.a . + +clean distclean maintainer-clean :: + $(RM) -f stamp.ffi.static stamp.ffi.shared ffi.h + $(RM) -f libffi.a libffi-3.dll libffi.dll.a + $(RM) -rf build + $(RM) -rf build-shared + +#----------------------------------------------------------------------------- +# +# binary-dist + +include $(TOP)/mk/target.mk + +binary-dist: + $(INSTALL_DIR) $(BIN_DIST_DIR)/libffi + $(INSTALL_DATA) Makefile $(BIN_DIST_DIR)/libffi/ +ifneq "$(HaveLibFFI)" "YES" + $(INSTALL_DATA) $(BINDIST_STAMPS) $(BIN_DIST_DIR)/libffi/ + ifneq "$(INSTALL_PROGS)" "" + $(INSTALL_DATA) $(INSTALL_PROGS) $(BIN_DIST_DIR)/libffi/ + endif + ifneq "$(INSTALL_LIBS)" "" + $(INSTALL_DATA) $(INSTALL_LIBS) $(BIN_DIST_DIR)/libffi/ + endif + ifneq "$(INSTALL_HEADERS)" "" + $(INSTALL_HEADER) $(INSTALL_HEADERS) $(BIN_DIST_DIR)/libffi/ + endif +endif + diff --git a/libffi/libffi-3.0.4.tar.gz b/libffi/libffi-3.0.4.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..0b20310aaeae6270b9d55f5f3c9f52c736b890b4 GIT binary patch literal 722782 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