James E Wilson wrote:
I read the descriptions of (high:m exp) and (lo_sum:m x y) in the gcc internal manuls (Section 10.7 and 10.9).
The last line of their descriptions confused me because they wrote "m should be Pmode".
A doc bug. You only need Pmode if you are operating on an address. high was originally added for loading addresses on a risc, like a sparc, in which case you would have to have Pmode. However, it has proven useful in many other cases. The sparc.md file for instance has an SFmode pattern that uses high/lo_sum, for loading an SFmode constant into a general register.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com