ffi64.c (struct register_args): Rename from stackLayout.
authorRichard Henderson <rth@redhat.com>
Sat, 25 Dec 2004 09:54:40 +0000 (01:54 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Sat, 25 Dec 2004 09:54:40 +0000 (01:54 -0800)
commit1a0f488c328df63663eed29d18af44733ece3abc
treeee86acf0cf82fc125cf24870db047bb772f51cfa
parentfa54a7a743310d8c10cec4fef91d7bff3705984f
ffi64.c (struct register_args): Rename from stackLayout.

        * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
        (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
        (merge_classes): Check for it.
        (SSE_CLASS_P): New.
        (classify_argument): Pass byte_offset by value; perform all updates
        inside struct case.
        (examine_argument): Add classes argument; handle
        X86_64_COMPLEX_X87_CLASS.
        (ffi_prep_args): Merge into ...
        (ffi_call): ... here.  Share stack frame with ffi_call_unix64.
        (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
        (ffi_fill_return_value): Remove.
        (ffi_prep_closure): Remove dead assert.
        (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
        Rewrite to use struct register_args instead of va_list.  Create
        flags for handling structure returns.
        * src/x86/unix64.S: Remove dead strings.
        (ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
        stack frame with ffi_call.  Handle structure returns properly.
        (float2sse, floatfloat2sse, double2sse): Remove.
        (sse2float, sse2double, sse2floatfloat): Remove.
        (ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
        to handle structure returns properly.

From-SVN: r92602
libffi/ChangeLog
libffi/src/x86/ffi64.c
libffi/src/x86/unix64.S