From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4023 invoked by alias); 11 Oct 2011 13:48:03 -0000 Received: (qmail 3983 invoked by uid 22791); 11 Oct 2011 13:48:02 -0000 X-SWARE-Spam-Status: Yes, hits=5.3 required=5.0 tests=AWL,BAYES_40,BOTNET,RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from vms173003pub.verizon.net (HELO vms173003pub.verizon.net) (206.46.173.3) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 11 Oct 2011 13:47:31 +0000 Received: from [172.16.0.198] ([unknown] [108.20.111.123]) by vms173003.mailsrvcs.net (Sun Java(tm) System Messaging Server 7u2-7.02 32bit (built Apr 16 2009)) with ESMTPA id <0LSW00J9RMAFNLI0@vms173003.mailsrvcs.net> for libffi-discuss@sourceware.org; Tue, 11 Oct 2011 08:47:09 -0500 (CDT) From: Timothy Wall Content-type: multipart/mixed; boundary=Apple-Mail-1-731206785 Subject: patch for windows CE/Mobile arm Date: Tue, 11 Oct 2011 13:48:00 -0000 Message-id: To: libffi-discuss MIME-version: 1.0 (Apple Message framework v1084) Mailing-List: contact libffi-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libffi-discuss-owner@sourceware.org X-SW-Source: 2011/txt/msg00194.txt.bz2 --Apple-Mail-1-731206785 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii Content-length: 43 wce/wme has maximum alignment of 4 bytes. --Apple-Mail-1-731206785 Content-Disposition: attachment; filename=diff.txt Content-Type: text/plain; x-unix-mode=0664; name="diff.txt" Content-Transfer-Encoding: quoted-printable Content-length: 1247 diff --git a/src/arm/ffi.c b/src/arm/ffi.c index b2e7667..532c330 100644 --- a/src/arm/ffi.c +++ b/src/arm/ffi.c @@ -64,6 +64,7 @@ int ffi_prep_args(char *stack, extended_cif *ecif, float = *vfp_space) i--, p_arg++) { size_t z; + size_t alignment; =20 /* Allocated in VFP registers. */ if (ecif->cif->abi =3D=3D FFI_VFP @@ -81,8 +82,13 @@ int ffi_prep_args(char *stack, extended_cif *ecif, float= *vfp_space) } =20 /* Align if necessary */ - if (((*p_arg)->alignment - 1) & (unsigned) argp) { - argp =3D (char *) ALIGN(argp, (*p_arg)->alignment); + alignment =3D (*p_arg)->alignment; +#ifdef _WIN32_WCE + if (alignment > 4) + alignment =3D 4; +#endif + if ((alignment - 1) & (unsigned) argp) { + argp =3D (char *) ALIGN(argp, alignment); } =20 if ((*p_arg)->type =3D=3D FFI_TYPE_STRUCT) @@ -320,6 +326,10 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, alignment =3D (*p_arg)->alignment; if (alignment < 4) alignment =3D 4; +#ifdef _WIN32_WCE + if (alignment > 4)=20 + alignment =3D 4; +#endif /* Align if necessary */ if ((alignment - 1) & (unsigned) argp) { argp =3D (char *) ALIGN(argp, alignment); --Apple-Mail-1-731206785--