[Bug target/106895] powerpc64 unable to specify even/odd register pairs in extended inline asm
segher at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jul 4 16:18:58 GMT 2023
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.
More information about the Gcc-bugs
mailing list