Re: The subreg question

2005-04-25 Thread James E Wilson
Ling-hua Tseng wrote: (Does (high:SI ...) have the semantic of clearing LSB 16-bit ? ) Storing an SImode value into an SImode reg will set the entire register, unless you are using subreg/zero_extract/etc on the destination. So yes, this will clear the low order bits, where the number of

Re: The subreg question

2005-04-23 Thread Ling-hua Tseng
James E Wilson wrote: Ling-hua Tseng wrote: It's obvious that `movil' and `movim' are only access the partial 16-bit of the 32-bit register. How can I use RTL expression to represent the operations? As you noticed, within a register, subreg can only be used for low parts. You can't ask for the h

Re: The subreg question

2005-04-19 Thread James E Wilson
Ling-hua Tseng wrote: 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 o

Re: The subreg question

2005-04-19 Thread Ling-hua Tseng
James E Wilson wrote: Ling-hua Tseng wrote: It's obvious that `movil' and `movim' are only access the partial 16-bit of the 32-bit register. How can I use RTL expression to represent the operations? As you noticed, within a register, subreg can only be used for low parts. You can't ask for the h

Re: The subreg question

2005-04-18 Thread James E Wilson
Ling-hua Tseng wrote: > It's obvious that `movil' and `movim' are only access the partial > 16-bit of the 32-bit register. How can I use RTL expression to > represent the operations? As you noticed, within a register, subreg can only be used for low parts. You can't ask for the high part of a s

Re: The subreg question

2005-04-17 Thread Björn Haase
Hi, I have been working on very similar issues for the avr target. You might have a look at the patch I have posted today and the corresponding discussion thread at the gcc-patches list. I have also observed, that gen_highpart and gen_lowpart sometimes causes an ICE for reasons. ... did not f