gcc.info: Bit Fields

Go forward to Conversions
Go backward to Comparisons
Go up to RTL
Go to the top op gcc

Bit Fields

   Special expression codes exist to represent bitfield instructions.
These types of expressions are lvalues in RTL; they may appear on the
left side of an assignment, indicating insertion of a value into the
specified bit field.
`(sign_extract:M LOC SIZE POS)'
     This represents a reference to a sign-extended bit field contained
     or starting in LOC (a memory or register reference).  The bit field
     is SIZE bits wide and starts at bit POS.  The compilation option
     `BITS_BIG_ENDIAN' says which end of the memory unit POS counts
     from.
     If LOC is in memory, its mode must be a single-byte integer mode.
     If LOC is in a register, the mode to use is specified by the
     operand of the `insv' or `extv' pattern (*note Standard Names::.)
     and is usually a full-word integer mode, which is the default if
     none is specified.
     The mode of POS is machine-specific and is also specified in the
     `insv' or `extv' pattern.
     The mode M is the same as the mode that would be used for LOC if
     it were a register.
`(zero_extract:M LOC SIZE POS)'
     Like `sign_extract' but refers to an unsigned or zero-extended bit
     field.  The same sequence of bits are extracted, but they are
     filled to an entire word with zeros instead of by sign-extension.