[Bug target/50751] SH Target: Displacement addressing does not work for QImode and HImode
olegendo at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Apr 19 09:31:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50751
--- Comment #28 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-04-19 09:29:41 UTC ---
The prophecy in comment #3 finally came true (again) while I was testing the
patch for PR 52941 ;)
The problem is that when reload tries to swap regs from/to stack, it will try
to use the QI/HI displacement addressing patterns to access the stack (which is
good). However, if the following insn has an R0 clobber (such as the atomic
sequences) reload will bail out instead of introducing another R0 <-> Rn move
after the QI/HI load/store in order to satisfy the displacement addressing
constraints.
I'm now trying to work around this by adding special insn_and_split patterns
for the reload phase and removing the displacement addressing special cases in
sh_secondary_reload....
More information about the Gcc-bugs
mailing list