1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03: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:
Noah Goldstein
2022-04-13 19:46:03 -05:00
parent d275970ab5
commit 535e935a28
19 changed files with 34 additions and 34 deletions

View File

@ -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;

View File

@ -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;