Hi,
Sorry to bother you again, but I am stuck.
First, movmem is only invoked if move_by_pieces gives up,
which means it will expand using DImode moves before attempting
movmem. I have tweaked MOVE_RATIO for now, but that is far
from optimal (! by_pieces, ! memmov => libcall).
Second, can I use TI mode in my movti_internal? I guess reload will have
trouble handling any TI register (and I have seen some reload failures
in my experiments,) since it will look for movti in vain.
If I can't use TI mode, how do I tell the register allocator the size
of the quad register?
Kind regards,
Martien
On 12/10/16 17:54, Jeff Law wrote:
I'd look at defining a movmem/movstr patterns.
That may in turn involve creating a pattern which implements movti, but
don't call it movti. Lots of stuff is going to trigger off the
existence of movXX patterns, which is precisely what you're trying to
avoid. So change the name of your pattern from "movti" to
"movti_internal" or somesuch. You can then generate that pattern via
gen_movti_internal (args...)