[Patch] libffi: Fixes for MIPS n32 ABI.

David Daney ddaney@avtrex.com
Thu Dec 6 22:39:00 GMT 2007


Andrew Haley wrote:
> David Daney writes:
>
>  > 
>  > 2007-12-3  David Daney  <ddaney@avtrex.com>
>  > 
>  >     * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not    already
>  >     defined.
>  >     (ffi_java_raw): New typedef.
>  >     (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
>  >     ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
>  >     ffi_java_raw.
>  >     (ffi_java_raw_closure) : Same.
>  >     (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
>  >     parameter types.
>  >     * src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
>  >     FFI_SIZEOF_JAVA_RAW.
>  >     (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
>  >     Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
>  >     sizeof(ffi_java_raw) for alignment calculations.
>  >     (ffi_java_ptrarray_to_raw): Same.
>  >     (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
>  >         if FFI_SIZEOF_JAVA_RAW == 4.
>  >     (ffi_java_raw_to_rvalue): Same.
>  >     (ffi_java_raw_call): Change type of raw to ffi_java_raw.
>  >     (ffi_java_translate_args): Same.
>  >     (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
>  >     parameter types.
>  >     * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
>  > 
>  > 2007-12-3  David Daney  <ddaney@avtrex.com>
>  > 
>  >     * interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout.
>  >     (ncode_closure, ffi_closure_fun): Define versions for
>  >     non-FFI_NATIVE_RAW_API case.
>  >     * include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to
>  >     replace    ffi_raw throughout.
>  >     * jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE
>  >     throughout.
>
> OK.
>
>   
This is the version I actually committed.  The original patch used the
wrong test for n32 ABI and had a couple of code formatting issues.

2007-12-06  David Daney  <ddaney@avtrex.com>

    * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not    already
    defined.
    (ffi_java_raw): New typedef.
    (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
    ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
    ffi_java_raw.
    (ffi_java_raw_closure) : Same.
    (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
    parameter types.
    * src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
    FFI_SIZEOF_JAVA_RAW.
    (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
    Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
    sizeof(ffi_java_raw) for alignment calculations.
    (ffi_java_ptrarray_to_raw): Same.
    (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
        if FFI_SIZEOF_JAVA_RAW == 4.
    (ffi_java_raw_to_rvalue): Same.
    (ffi_java_raw_call): Change type of raw to ffi_java_raw.
    (ffi_java_translate_args): Same.
    (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
    parameter types.
    * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.

2007-12-06  David Daney  <ddaney@avtrex.com>

    * interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout.
    (ncode_closure, ffi_closure_fun): Define versions for
    non-FFI_NATIVE_RAW_API case.
    * include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to
    replace    ffi_raw throughout.
    * jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE
    throughout.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffi-1.diff
Type: text/x-patch
Size: 16717 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20071206/9b4cfe97/attachment.bin>


More information about the Gcc-patches mailing list