https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115389

--- Comment #8 from Segher Boessenkool <segher at gcc dot gnu.org> ---
(In reply to Peter Bergner from comment #4)
> (In reply to Segher Boessenkool from comment #2)
> > So, what value do we output? And why?
> The invalid offset is zero, so: hashst r0,0(r1)
> As the assembler mentions, the range of valid offsets is [-512,-8] and the
> offset must be a multiple of 8.
> 
> The "bug" is that we initialize rop_hash_save_offset to zero very early,
> before any option processing.  Later, we compute the actual offset, but only
> in the case where Altivec is enabled (TARGET_ALTIVEC_ABI is true).  If
> Altivec is disabled as in this test case, we end up using
> rop_hash_save_offset's invalid initial zero value.

And offset 0 is the backchain, not something you can innocently clobber :-)

Reply via email to