On Mon, Nov 25, 2019 at 07:05:02PM -0600, Segher Boessenkool wrote: > On Mon, Nov 25, 2019 at 05:52:29PM -0500, Michael Meissner wrote: > > If you write: > > > > paddi 10,9,foo@pcrel > > > > The assembler will interpret this as: > > > > paddi 10,9,(.-foo),0
foo-. actually. > > I.e. it will add the difference from current instruction to foo and > > register 2 > > and place it in register 10. But it will not add the current location for > > the > > paddi. > > > > Of course it might make sense if the assembler could flag the first line as > > an > > error, and if you really wanted to write that, you should use: > > > > paddi 10,9,foo@pcrel,0 > > Does it ever make sense to allow @pcrel on anything that is not prefixed > and R=1? (Cc: Alan). Probably not, but we might want something similar to generate the high part of a 64-bit pcrel offset. pli 11,(foo-1f)@highera34 sldi 11,11,34 1: pla 12,foo@pcrel add 12,11,12 We don't have the necessary relocs at the moment, and in any case we might be better off with other code sequences. -- Alan Modra Australia Development Lab, IBM