https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106895
--- Comment #8 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Peter Bergner from comment #6) > (In reply to Segher Boessenkool from comment #5) > > Constraints are completely the wrong tool for this. Just use modes, which > > *are* the right tool? > > Well you cannot specify modes in the asm, so I think you're saying we need > use the correct type that maps to a internal to GCC mode that has the > even/odd register behavior, so something like: > > unsigned int foo __attribute__ ((mode (XX))); > > ...where XXmode is the new integer mode that gives us even/odd register > pairs? Of course we have to be careful about how this all works wrt -m32 > versus -m64. No, the type there is "unsigned int". I meant to say exactly what I did say: just use modes. Which you indeed do in user code by the mode attribute, yes. And you do not need a new mode: PTImode should just work. But the user specifying that is currently broken it seems? Without -mpowerpc64 you cannot *have* 128-bit integers in registers. That should be fixed, but you cannot have it in just *two* registers, which is what is required here. For most targets that then means -m64 is required.