GCC Middle and Back End API Reference
bitint_info Struct Reference

#include <target.h>

Data Fields

machine_mode abi_limb_mode
machine_mode limb_mode
bool big_endian
enum bitint_ext extended

Detailed Description

Target properties of _BitInt(N) type.  _BitInt(N) is to be represented
as series of abi_limb_mode CEIL (N, GET_MODE_PRECISION (abi_limb_mode))
limbs, ordered from least significant to most significant if !big_endian,
otherwise from most significant to least significant.  If extended is
bitint_ext_undef, the bits above or equal to N are undefined when stored in
a register or memory, if extended is bitint_ext_full, they are zero or sign
extended depending on if it is unsigned _BitInt(N) or
_BitInt(N) / signed _BitInt(N), if extended is bitint_ext_partial, then bits
above or equal to N and below
M = CEIL (N, GET_MODE_PRECISION (limb_mode)) * GET_MODE_PRECISION (limb_mode)
are zero or sign extended as specified above and bits above or equal to M
are undefined.
limb_mode is either the same as abi_limb_mode, or some narrower mode
in which _BitInt lowering should actually perform operations in and
what libgcc _BitInt helpers should use.
E.g. abi_limb_mode could be TImode which is something some processor
specific ABI would specify to use, but it would be desirable to handle
it as an array of DImode instead for efficiency.
Note, abi_limb_mode can be different from limb_mode only if big_endian
matches WORDS_BIG_ENDIAN.   

Field Documentation

◆ abi_limb_mode

◆ big_endian

◆ extended

◆ limb_mode


The documentation for this struct was generated from the following file: