On Jan 18, 2014, at 12:04 PM, "Paulo J. Matos" <paulo@matos-sorge.com> wrote:
On 17/01/14 17:36, Eric Botcazou wrote:
I am not implying that this is a GCC bug, unless you think
WORD_REISTER_OPERATIONS should have avoided the creation of such
paradoxical subreg.
No, that's precisely the contrary, WORD_REGISTER_OPERATIONS tends to create
paradoxical subregs.
I might then, be misunderstanding the reason to enable WORD_REGISTER_OPERATIONS. From the documentation:
"Macro: WORD_REGISTER_OPERATIONS
Define this macro if operations between registers with integral mode smaller than a word are always performed on the entire register. Most RISC machines have this property and most CISC machines do not. "
The machine I am targeting is a 64bit vector machine. When you perform a 16 bit operation, the whole register is changed because the operation actually changes every 16bit group of the register. So it seems I should enable WORD_REGISTER_OPERATIONS.
As an aside, is there any machine in gcc mainline like this?