subreg:HI of PSI hw reg issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

My target has HI and PSI hardware registers. HI hwregs can hold PSI
values, and PSI registers (ex A0 reg) can hold HI values.

My target is big endian and my problem occurs when I split a movpsi when
gcc computes sub registers of PSI hw register. For example when using
simplify_gen_subreg:

- (subreg:HI (reg:PSI A0) 2) which is the least significant part returns
NULL_RTX
- (subreg:HI (reg:PSI A0) 0) which is the most significant part returns
(reg:HI A0).

This means gcc consider that the HI part of a PSI reg is located at the
MS part of the register which is wrong on my target.
Hence, the cprop_hardreg pass may replace some registers by wrong ones
when PSI registers are split.

Is it a wishable behavior and is there a way to make such a split work
for PSI moves, or should I manage such a split at assembly level,
preventing some further optimizations ?

Thanks,
Aurélien


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux