The description of the induction variable is provided in struct
rtx_iv. In order to handle subregs, the representation is a bit
complicated; if the value of the extend field is not UNKNOWN, the
value of the induction variable in the i-th iteration is
delta + mult * extend_{extend_mode} (subreg_{mode} (base + i * step)),
with the following exception: if first_special is true, then the value
in the first iteration (when i is zero) is delta + mult * base.
However, if extend is equal to UNKNOWN, then first_special must be
false, delta 0, mult 1 and the value in the i-th iteration is
subreg_{mode} (base + i * step)
The function get_iv_value can be used to perform these calculations.
==============
其中公式
delta + mult * extend_{extend_mode} (subreg_{mode} (base + i * step)),
中 extend extend_mode, subreg, subreg_mode是什么意思?
谢谢
--
Jianzhang Peng
比如32位的寄存器reg,可能会作为16位子寄存器来使用,即subreg,它的机器模式就是subreg_mode。
反过来,如果将16位的整数,算术(或逻辑)扩展为32位,成为extend,扩展后的机器模式为extend_mode。
2009/12/18 Jianzhang Peng <pengji...@gmail.com>:
> --
>
> 您收到此邮件是因为您订阅了 Google 网上论坛的"HelloGcc Workshop"论坛。
> 要向此网上论坛发帖,请发送电子邮件至 hell...@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 hellogcc+u...@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/hellogcc?hl=zh-CN 访问此网上论坛。
>
>
>