the 68000 PDP8 PDP11 and 6600 all had auto-increment addressing modes. Power ISA has LDST-with-update which is not quite the same but almost: update-with-immediate on a Vector advances by the immediate, but has an initial "one too many adds" autoincrementing should use the EA *before* the add is performed (i.e. just RA) as an option. thus on loop exit RA is set to point to where the *next* batch starts.
in LD/ST-immediate there is a mode-combination reserved, which can be used for saying "use RA only as the EA, but write out (RA+imm) as the update". this is a significant change as it means modifying the pseudocode: ea <- RA+D if preincrement then EA <- ea else EA <- RA RT -< MEM(EA, sz) RA <- ea with a default "preincrement=1" in Scalar ISA
in progress, experimental, separate branch https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=daf2ab55feac8ff1a9ffb8fdf2f5182594513a9a pseudocode: https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=openpower/isa/pifixedload.mdwn;hb=HEAD