https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98519
--- Comment #15 from Michael Meissner <meissner at gcc dot gnu.org> --- FWIW, the hook that will need to be modified is rs6000_md_asm_adjust in rs6000.c. It appears you are passed the outputs, the inputs, the constraints, and the clobbers. Right now, we just mark the CA register as being clobbered. The simplest approach is just to prohibit both prefixed and pc-relative addresses from being passed to the asm. If a prefixed/pc-relative address is passed as an input/output, we would need to force the address to a base register, and rewrite the input/output to use that new base register. That will allow traditional code to work. I suspect if we wanted to enable users to actually do prefixed loads/stores in the asm, we would need a constraint that says this address must be prefixed. Possibly another one for pc-relative. And then the hook would allow the address without modification.