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.
Created Wed Sep 1 16:42:22 2004 on bee with info_to_html version 0.9.6.