Next: Vector Operations, Previous: Comparisons, Up: RTL
(sign_extract:
m loc size pos)
BITS_BIG_ENDIAN
指明了pos从内存单元的那个端开始。
如果loc在内存中,则它的机器模式必须为一个单个字节的整数机器模式。如果loc在寄存器中,则使用的机器模式是通过insv
或者extv
指令模式的操作数来指定的(参见Standard Names)并且通常为一个全字的整数机器模式,这当没有任何指定的时候为缺省的。
pos的机器模式为机器特定的并且总是在insv
或者extv
指令模式中被指定。
机器模式m与loc所使用的相同,如果它是在寄存器中。
在RTL中,sign_extract
不可以作为左值或者是其中的一部分出现。
(zero_extract:
m loc size pos)
sign_extract
,但是指向一个无符号或者零扩展的位域。相同的位序列被抽取,但是它们被填充到一个整字中,并使用零扩展而不是符号扩展。
不像sign_extract
,该表达式的类型可以在RTL中为左值;它们可以出现在一个赋值的左边,来表明在一个指定的位域插入一个值。