mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 14:00:30 +00:00
Update.
2000-04-04 Ulrich Drepper <drepper@redhat.com> * iconv/skeleton.c (FUNCTION_NAME): Reorder initialization of unaligned so that it compiles for system which need unaligned access handling.
This commit is contained in:
parent
0b7219cc9d
commit
3aaad0b638
@ -1,3 +1,9 @@
|
||||
2000-04-04 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* iconv/skeleton.c (FUNCTION_NAME): Reorder initialization of
|
||||
unaligned so that it compiles for system which need unaligned
|
||||
access handling.
|
||||
|
||||
2000-04-04 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* elf/cache.c (print_entry): Only look at the type field when
|
||||
|
@ -297,34 +297,39 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
|
||||
unsigned char *outbuf = data->__outbuf;
|
||||
unsigned char *outend = data->__outbufend;
|
||||
unsigned char *outstart;
|
||||
/* This variable is used to count the number of characters we
|
||||
actually converted. */
|
||||
size_t converted = 0;
|
||||
#if defined _STRING_ARCH_unaligned \
|
||||
|| MIN_NEEDED_FROM == 1 || MAX_NEEDED_FROM % MIN_NEEDED_FROM != 0 \
|
||||
|| MIN_NEEDED_TO == 1 || MAX_NEEDED_TO % MIN_NEEDED_TO != 0
|
||||
# define unaligned 0
|
||||
#else
|
||||
int unaligned;
|
||||
# define GEN_unaligned(name) GEN_unaligned2 (name)
|
||||
# define GEN_unaligned2(name) name##_unaligned
|
||||
#endif
|
||||
|
||||
#ifdef PREPARE_LOOP
|
||||
PREPARE_LOOP
|
||||
#endif
|
||||
|
||||
#if !defined _STRING_ARCH_unaligned \
|
||||
&& MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
|
||||
&& MIN_NEEDED_TO != 1 && MAX_NEEDED_TO % MIN_NEEDED_TO == 0
|
||||
/* The following assumes that encodings, which have a variable length
|
||||
what might unalign a buffer even though it is a aligned in the
|
||||
beginning, either don't have the minimal number of bytes as a divisor
|
||||
of the maximum length or have a minimum length of 1. This is true
|
||||
for all known and supported encodings. */
|
||||
int unaligned = ((FROM_DIRECTION
|
||||
&& ((uintptr_t) inptr % MIN_NEEDED_FROM != 0
|
||||
|| (data->__is_last
|
||||
&& (uintptr_t) outbuf % MIN_NEEDED_TO != 0)))
|
||||
|| (!FROM_DIRECTION
|
||||
&& ((data->__is_last
|
||||
&& (uintptr_t) outbuf % MIN_NEEDED_FROM != 0)
|
||||
|| (uintptr_t) inptr % MIN_NEEDED_TO != 0)));
|
||||
# define GEN_unaligned(name) GEN_unaligned2 (name)
|
||||
# define GEN_unaligned2(name) name##_unaligned
|
||||
#endif
|
||||
|
||||
/* This variable is used to count the number of characters we
|
||||
actually converted. */
|
||||
size_t converted = 0;
|
||||
|
||||
#ifdef PREPARE_LOOP
|
||||
PREPARE_LOOP
|
||||
unaligned = ((FROM_DIRECTION
|
||||
&& ((uintptr_t) inptr % MIN_NEEDED_FROM != 0
|
||||
|| (data->__is_last
|
||||
&& (uintptr_t) outbuf % MIN_NEEDED_TO != 0)))
|
||||
|| (!FROM_DIRECTION
|
||||
&& ((data->__is_last
|
||||
&& (uintptr_t) outbuf % MIN_NEEDED_FROM != 0)
|
||||
|| (uintptr_t) inptr % MIN_NEEDED_TO != 0)));
|
||||
#endif
|
||||
|
||||
do
|
||||
|
Loading…
Reference in New Issue
Block a user