[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

15.10 ビットフィールド

特別な式コードがあり、ビットフィールド命令を表現することができる。 この型の式は、RTL 中で左辺値となる。代入式の左辺に置くことが可能で、 その式で指定されたビットフィールドにある値を代入することを指示する。

(sign_extract:m loc size pos)

これは、loc(メモリかレジスタの参照)に含まれるか、そこで始まっている 符号拡張されたビットフィールドへの参照を表す。 このビットフィールドは幅が size ビットで、ビット位置 pos から 始まっている。コンパイル時の選択により、BITS_BIG_ENDIAN が、 メモリ単位のどちらの端から pos を数えるかを指定する。

loc がメモリ中に置かれているなら、そのモードは一バイト整数のモードで なければならない。 loc がレジスタに置かれているなら、使うべきモードは、 パターン insv または extv (see section RTL生成用標準パターン名) のオペランドとして指定されたものになり、通常は全語の整数モードである。 何も指定がないときのデフォルトは全語の整数モードになる。

pos のモードはマシン固有であり、パターン insv または extv でも指定される。

モード m は、loc がレジスタなら、それに使われるモードと 同じである。

(zero_extract:m loc size pos)

sign_extract と同様だが、符号なし、あるいはゼロ拡張された ビットフィールドを参照する。 同じビット列が抽出されるが、符号拡張ではなくゼロで埋め尽くされる。


This document was generated using texi2html 1.78.