libport: Get rid of memcpy_unaligned().

The code that uses it is no longer built on non-i386.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2019-03-12 19:30:33 +01:00
parent 9bf4db1325
commit 25e4cfbdb3
5 changed files with 4 additions and 45 deletions

View File

@ -333,7 +333,7 @@ static void NE_InitResourceHandler( HMODULE16 hModule )
pTypeInfo = (NE_TYPEINFO *)((char *)pModule + pModule->ne_rsrctab + 2); pTypeInfo = (NE_TYPEINFO *)((char *)pModule + pModule->ne_rsrctab + 2);
while(pTypeInfo->type_id) while(pTypeInfo->type_id)
{ {
memcpy_unaligned( &pTypeInfo->resloader, &proc, sizeof(FARPROC16) ); pTypeInfo->resloader = proc;
pTypeInfo = (NE_TYPEINFO *)((char*)(pTypeInfo + 1) + pTypeInfo->count * sizeof(NE_NAMEINFO)); pTypeInfo = (NE_TYPEINFO *)((char*)(pTypeInfo + 1) + pTypeInfo->count * sizeof(NE_NAMEINFO));
} }
} }

View File

@ -380,8 +380,8 @@ FARPROC16 WINAPI SetResourceHandler16( HMODULE16 hModule, LPCSTR typeId, FARPROC
{ {
if (!(pTypeInfo = NE_FindTypeSection( pResTab, pTypeInfo, typeId ))) if (!(pTypeInfo = NE_FindTypeSection( pResTab, pTypeInfo, typeId )))
break; break;
memcpy_unaligned( &prevHandler, &pTypeInfo->resloader, sizeof(FARPROC16) ); prevHandler = pTypeInfo->resloader;
memcpy_unaligned( &pTypeInfo->resloader, &resourceHandler, sizeof(FARPROC16) ); pTypeInfo->resloader = resourceHandler;
pTypeInfo = next_typeinfo(pTypeInfo); pTypeInfo = next_typeinfo(pTypeInfo);
} }
if (!prevHandler) prevHandler = get_default_res_handler(); if (!prevHandler) prevHandler = get_default_res_handler();
@ -1031,8 +1031,7 @@ HGLOBAL16 WINAPI LoadResource16( HMODULE16 hModule, HRSRC16 hRsrc )
} }
else else
{ {
FARPROC16 resloader; FARPROC16 resloader = pTypeInfo->resloader;
memcpy_unaligned( &resloader, &pTypeInfo->resloader, sizeof(FARPROC16) );
if (resloader && resloader != get_default_res_handler()) if (resloader && resloader != get_default_res_handler())
{ {
WORD args[3]; WORD args[3];

View File

@ -368,15 +368,6 @@ int symlink(const char *from, const char *to);
int usleep (unsigned int useconds); int usleep (unsigned int useconds);
#endif /* !defined(HAVE_USLEEP) */ #endif /* !defined(HAVE_USLEEP) */
#ifdef __i386__
static inline void *memcpy_unaligned( void *dst, const void *src, size_t size )
{
return memcpy( dst, src, size );
}
#else
extern void *memcpy_unaligned( void *dst, const void *src, size_t size );
#endif /* __i386__ */
extern int mkstemps(char *template, int suffix_len); extern int mkstemps(char *template, int suffix_len);
/* Process creation flags */ /* Process creation flags */
@ -532,7 +523,6 @@ extern __int64 interlocked_cmpxchg64( __int64 *dest, __int64 xchg, __int64 compa
#define interlocked_xchg_ptr __WINE_NOT_PORTABLE(interlocked_xchg_ptr) #define interlocked_xchg_ptr __WINE_NOT_PORTABLE(interlocked_xchg_ptr)
#define interlocked_xchg_add __WINE_NOT_PORTABLE(interlocked_xchg_add) #define interlocked_xchg_add __WINE_NOT_PORTABLE(interlocked_xchg_add)
#define lstat __WINE_NOT_PORTABLE(lstat) #define lstat __WINE_NOT_PORTABLE(lstat)
#define memcpy_unaligned __WINE_NOT_PORTABLE(memcpy_unaligned)
#undef memmove #undef memmove
#define memmove __WINE_NOT_PORTABLE(memmove) #define memmove __WINE_NOT_PORTABLE(memmove)
#define pread __WINE_NOT_PORTABLE(pread) #define pread __WINE_NOT_PORTABLE(pread)

View File

@ -90,7 +90,6 @@ C_SRCS = \
isnan.c \ isnan.c \
lstat.c \ lstat.c \
mbtowc.c \ mbtowc.c \
memcpy_unaligned.c \
memmove.c \ memmove.c \
mkstemps.c \ mkstemps.c \
normalize.c \ normalize.c \

View File

@ -1,29 +0,0 @@
/*
* Unaligned memcpy wrapper to defeat gcc optimizations.
*
* Copyright 1996 Alexandre Julliard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include "wine/port.h"
#ifndef __i386__
void *memcpy_unaligned( void *dst, const void *src, size_t size )
{
return memcpy( dst, src, size );
}
#endif