Copyright (C) 2000-2012 |
GNU Info (gcc-295.info)Bit FieldsBit 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. automatically generated by info2www version 1.2.2.9 |