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 :-)