mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
Replace {u}int_fast{16|32} with {u}int32_t
On 32-bit machines this has no affect. On 64-bit machines {u}int_fast{16|32} are set as {u}int64_t which is often not ideal. Particularly x86_64 this change both saves code size and may save instruction cost. Full xcheck passes on x86_64.
This commit is contained in:
parent
d275970ab5
commit
535e935a28
@ -1093,7 +1093,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
|
||||
/* On most platforms presume that PT_GNU_STACK is absent and the stack is
|
||||
* executable. Other platforms default to a nonexecutable stack and don't
|
||||
* need PT_GNU_STACK to do so. */
|
||||
uint_fast16_t stack_flags = DEFAULT_STACK_PERMS;
|
||||
unsigned int stack_flags = DEFAULT_STACK_PERMS;
|
||||
|
||||
{
|
||||
/* Scan the program header table, collecting its load commands. */
|
||||
|
@ -208,7 +208,7 @@ is_nodelete (struct link_map *map, int flags)
|
||||
in the unique symbol table, creating a new entry if necessary.
|
||||
Return the matching symbol in RESULT. */
|
||||
static void
|
||||
do_lookup_unique (const char *undef_name, uint_fast32_t new_hash,
|
||||
do_lookup_unique (const char *undef_name, unsigned int new_hash,
|
||||
struct link_map *map, struct sym_val *result,
|
||||
int type_class, const ElfW(Sym) *sym, const char *strtab,
|
||||
const ElfW(Sym) *ref, const struct link_map *undef_map,
|
||||
@ -339,7 +339,7 @@ marking %s [%lu] as NODELETE due to unique symbol\n",
|
||||
something bad happened. */
|
||||
static int
|
||||
__attribute_noinline__
|
||||
do_lookup_x (const char *undef_name, uint_fast32_t new_hash,
|
||||
do_lookup_x (const char *undef_name, unsigned int new_hash,
|
||||
unsigned long int *old_hash, const ElfW(Sym) *ref,
|
||||
struct sym_val *result, struct r_scope_elem *scope, size_t i,
|
||||
const struct r_found_version *const version, int flags,
|
||||
@ -558,13 +558,13 @@ skip:
|
||||
}
|
||||
|
||||
|
||||
static uint_fast32_t
|
||||
static uint32_t
|
||||
dl_new_hash (const char *s)
|
||||
{
|
||||
uint_fast32_t h = 5381;
|
||||
uint32_t h = 5381;
|
||||
for (unsigned char c = *s; c != '\0'; c = *++s)
|
||||
h = h * 33 + c;
|
||||
return h & 0xffffffff;
|
||||
return h;
|
||||
}
|
||||
|
||||
|
||||
@ -816,7 +816,7 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
|
||||
const struct r_found_version *version,
|
||||
int type_class, int flags, struct link_map *skip_map)
|
||||
{
|
||||
const uint_fast32_t new_hash = dl_new_hash (undef_name);
|
||||
const unsigned int new_hash = dl_new_hash (undef_name);
|
||||
unsigned long int old_hash = 0xffffffff;
|
||||
struct sym_val current_value = { NULL, NULL };
|
||||
struct r_scope_elem **scope = symbol_scope;
|
||||
|
@ -24,7 +24,7 @@
|
||||
/* Return true iff ELF program headers are incompatible with the running
|
||||
host. */
|
||||
static inline bool
|
||||
elf_machine_reject_phdr_p (const ElfW(Phdr) *phdr, uint_fast16_t phnum,
|
||||
elf_machine_reject_phdr_p (const ElfW(Phdr) *phdr, unsigned int phnum,
|
||||
const char *buf, size_t len, struct link_map *map,
|
||||
int fd)
|
||||
{
|
||||
|
@ -558,7 +558,7 @@ _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc)
|
||||
/* If we still have no entry stop searching and insert. */
|
||||
if (*topcindex == 0)
|
||||
{
|
||||
uint_fast32_t newarc = catomic_exchange_and_add (narcsp, 1);
|
||||
unsigned int newarc = catomic_exchange_and_add (narcsp, 1);
|
||||
|
||||
/* In rare cases it could happen that all entries in FROMS are
|
||||
occupied. So we cannot count this anymore. */
|
||||
|
@ -36,7 +36,7 @@ setup_vdso (struct link_map *main_map __attribute__ ((unused)),
|
||||
l->l_phdr = ((const void *) GLRO(dl_sysinfo_dso)
|
||||
+ GLRO(dl_sysinfo_dso)->e_phoff);
|
||||
l->l_phnum = GLRO(dl_sysinfo_dso)->e_phnum;
|
||||
for (uint_fast16_t i = 0; i < l->l_phnum; ++i)
|
||||
for (unsigned int i = 0; i < l->l_phnum; ++i)
|
||||
{
|
||||
const ElfW(Phdr) *const ph = &l->l_phdr[i];
|
||||
if (ph->p_type == PT_DYNAMIC)
|
||||
|
@ -575,7 +575,7 @@ _hurd_select (int nfds,
|
||||
for (i = 0; i < nfds; ++i)
|
||||
{
|
||||
int type = d[i].type;
|
||||
int_fast16_t revents = 0;
|
||||
int revents = 0;
|
||||
|
||||
if (type & SELECT_ERROR)
|
||||
switch (d[i].error)
|
||||
|
@ -959,8 +959,8 @@ ucs4le_internal_loop_single (struct __gconv_step *step,
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
uint_fast32_t cnt; \
|
||||
uint_fast32_t i; \
|
||||
unsigned int cnt; \
|
||||
unsigned int i; \
|
||||
\
|
||||
if (ch >= 0xc2 && ch < 0xe0) \
|
||||
{ \
|
||||
|
@ -37,15 +37,15 @@ __gconv_transliterate (struct __gconv_step *step,
|
||||
unsigned char **outbufstart, size_t *irreversible)
|
||||
{
|
||||
/* Find out about the locale's transliteration. */
|
||||
uint_fast32_t size;
|
||||
uint32_t size;
|
||||
const uint32_t *from_idx;
|
||||
const uint32_t *from_tbl;
|
||||
const uint32_t *to_idx;
|
||||
const uint32_t *to_tbl;
|
||||
const uint32_t *winbuf;
|
||||
const uint32_t *winbufend;
|
||||
uint_fast32_t low;
|
||||
uint_fast32_t high;
|
||||
uint32_t low;
|
||||
uint32_t high;
|
||||
|
||||
/* The input buffer. There are actually 4-byte values. */
|
||||
winbuf = (const uint32_t *) *inbufp;
|
||||
@ -85,7 +85,7 @@ __gconv_transliterate (struct __gconv_step *step,
|
||||
high = size;
|
||||
while (low < high)
|
||||
{
|
||||
uint_fast32_t med = (low + high) / 2;
|
||||
uint32_t med = (low + high) / 2;
|
||||
uint32_t idx;
|
||||
int cnt;
|
||||
|
||||
@ -111,7 +111,7 @@ __gconv_transliterate (struct __gconv_step *step,
|
||||
do
|
||||
{
|
||||
/* Determine length of replacement. */
|
||||
uint_fast32_t len = 0;
|
||||
unsigned int len = 0;
|
||||
int res;
|
||||
const unsigned char *toinptr;
|
||||
unsigned char *outptr;
|
||||
|
@ -4572,7 +4572,7 @@ static const char from_ucs4_extra[229][2] =
|
||||
/* Two-byte character. First test whether the next character \
|
||||
is also available. */ \
|
||||
uint32_t ch2; \
|
||||
uint_fast32_t idx; \
|
||||
uint32_t idx; \
|
||||
\
|
||||
if (__glibc_unlikely (inptr + 1 >= inend)) \
|
||||
{ \
|
||||
|
@ -130,7 +130,7 @@ static const uint16_t jamo_from_ucs_table[51] =
|
||||
|
||||
|
||||
static uint32_t
|
||||
johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2)
|
||||
johab_sym_hanja_to_ucs (uint32_t idx, uint32_t c1, uint32_t c2)
|
||||
{
|
||||
if (idx <= 0xdefe)
|
||||
return (uint32_t) __ksc5601_sym_to_ucs[(c1 - 0xd9) * 188 + c2
|
||||
@ -189,7 +189,7 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2)
|
||||
/* Two-byte character. First test whether the next \
|
||||
character is also available. */ \
|
||||
uint32_t ch2; \
|
||||
uint_fast32_t idx; \
|
||||
uint32_t idx; \
|
||||
\
|
||||
if (__glibc_unlikely (inptr + 1 >= inend)) \
|
||||
{ \
|
||||
@ -204,7 +204,7 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2)
|
||||
if (__glibc_likely (ch <= 0xd3)) \
|
||||
{ \
|
||||
/* Hangul */ \
|
||||
int_fast32_t i, m, f; \
|
||||
int i, m, f; \
|
||||
\
|
||||
i = init[(idx & 0x7c00) >> 10]; \
|
||||
m = mid[(idx & 0x03e0) >> 5]; \
|
||||
|
@ -4359,7 +4359,7 @@ static const char from_ucs4_extra[0x100][2] =
|
||||
/* Two-byte character. First test whether the next byte \
|
||||
is also available. */ \
|
||||
uint32_t ch2; \
|
||||
uint_fast32_t idx; \
|
||||
uint32_t idx; \
|
||||
\
|
||||
if (__glibc_unlikely (inptr + 1 >= inend)) \
|
||||
{ \
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
/* The hashing function used for the table with collation symbols. */
|
||||
static int32_t __attribute__ ((pure, unused))
|
||||
elem_hash (const char *str, int_fast32_t n)
|
||||
elem_hash (const char *str, int32_t n)
|
||||
{
|
||||
int32_t result = n;
|
||||
|
||||
|
@ -27,7 +27,7 @@ findidx (const int32_t *table,
|
||||
const unsigned char *extra,
|
||||
const unsigned char **cpp, size_t len)
|
||||
{
|
||||
int_fast32_t i = table[*(*cpp)++];
|
||||
int32_t i = table[*(*cpp)++];
|
||||
const unsigned char *cp;
|
||||
const unsigned char *usrc;
|
||||
|
||||
|
@ -814,7 +814,7 @@ re_string_elem_size_at (const re_string_t *pstr, Idx idx)
|
||||
# ifdef _LIBC
|
||||
const unsigned char *p, *extra;
|
||||
const int32_t *table, *indirect;
|
||||
uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
|
||||
uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
|
||||
|
||||
if (nrules != 0)
|
||||
{
|
||||
|
@ -118,7 +118,7 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
|
||||
goto unavail;
|
||||
|
||||
/* Check whether type and class match. */
|
||||
uint_fast16_t type;
|
||||
short int type;
|
||||
NS_GET16 (type, ptr);
|
||||
if (type == qtypes[i])
|
||||
{
|
||||
|
@ -257,7 +257,7 @@ int
|
||||
STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, locale_t l)
|
||||
{
|
||||
struct __locale_data *current = l->__locales[LC_COLLATE];
|
||||
uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word;
|
||||
uint32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word;
|
||||
/* We don't assign the following values right away since it might be
|
||||
unnecessary in case there are no rules. */
|
||||
const unsigned char *rulesets;
|
||||
|
@ -49,7 +49,7 @@
|
||||
/* Group locale data for shorter parameter lists. */
|
||||
typedef struct
|
||||
{
|
||||
uint_fast32_t nrules;
|
||||
uint32_t nrules;
|
||||
unsigned char *rulesets;
|
||||
USTRING_TYPE *weights;
|
||||
int32_t *table;
|
||||
@ -135,7 +135,7 @@ do_xfrm (const USTRING_TYPE *usrc, STRING_TYPE *dest, size_t n,
|
||||
{
|
||||
int32_t weight_idx;
|
||||
unsigned char rule_idx;
|
||||
uint_fast32_t pass;
|
||||
uint32_t pass;
|
||||
size_t needed = 0;
|
||||
size_t last_needed;
|
||||
|
||||
@ -404,10 +404,10 @@ static size_t
|
||||
do_xfrm_cached (STRING_TYPE *dest, size_t n, const locale_data_t *l_data,
|
||||
size_t idxmax, int32_t *idxarr, const unsigned char *rulearr)
|
||||
{
|
||||
uint_fast32_t nrules = l_data->nrules;
|
||||
uint32_t nrules = l_data->nrules;
|
||||
unsigned char *rulesets = l_data->rulesets;
|
||||
USTRING_TYPE *weights = l_data->weights;
|
||||
uint_fast32_t pass;
|
||||
uint32_t pass;
|
||||
size_t needed = 0;
|
||||
size_t last_needed;
|
||||
size_t idxcnt;
|
||||
|
@ -152,7 +152,7 @@ static const struct abi_req none_req = { true, true, true, false, true };
|
||||
impact of dlclose. */
|
||||
|
||||
static bool __attribute_used__
|
||||
elf_machine_reject_phdr_p (const ElfW(Phdr) *phdr, uint_fast16_t phnum,
|
||||
elf_machine_reject_phdr_p (const ElfW(Phdr) *phdr, unsigned int phnum,
|
||||
const char *buf, size_t len, struct link_map *map,
|
||||
int fd)
|
||||
{
|
||||
|
@ -269,7 +269,7 @@ _dl_discover_osversion (void)
|
||||
} expected_note = { { sizeof "Linux", sizeof (ElfW(Word)), 0 }, "Linux" };
|
||||
const ElfW(Phdr) *const phdr = GLRO(dl_sysinfo_map)->l_phdr;
|
||||
const ElfW(Word) phnum = GLRO(dl_sysinfo_map)->l_phnum;
|
||||
for (uint_fast16_t i = 0; i < phnum; ++i)
|
||||
for (unsigned int i = 0; i < phnum; ++i)
|
||||
if (phdr[i].p_type == PT_NOTE)
|
||||
{
|
||||
const ElfW(Addr) start = (phdr[i].p_vaddr
|
||||
|
Loading…
Reference in New Issue
Block a user