On Tue, Jan 13, 2026 at 08:03:48AM -0700, Jeffrey Law wrote: > > > On 1/12/2026 1:38 AM, Stefan Schulze Frielinghaus wrote: > > From: Stefan Schulze Frielinghaus<[email protected]> > > > > With the current implementation, for an alternative like {r0}{r1}...{rn} > > the last hard register constraint {rn} would always win which is not > > what users expect. Therefore, error out in case of multiple hard > > register constraints in one alternative. > > > > As far as I can tell right now, there is no inherent problem with > > supporting multiple hard register constraints in one alternative or even > > ad-hoc register classes. However, in light of reaching stage 4, this is > > something for another release. > > > > Likewise, a combination of hard register constraints and regular > > register constraints is not supported. Note, a combination of hard > > register constraints and non-register constraints as e.g. immediate > > constraints is supported. This is inspired by the i386 target where > > constraints like aI are used which could be expressed as {ax}I, too. > > > > gcc/ChangeLog: > > > > * stmt.cc (parse_output_constraint): Reject multiple hard > > register constraints or a combination of hard register > > constraints and regular register constraints in one alternative. > > (parse_input_constraint): Ditto. > > > > gcc/testsuite/ChangeLog: > > > > * gcc.dg/asm-hard-reg-error-1.c: Remove tests containing > > multiple hard register constraints in one alternative. > > * gcc.dg/asm-hard-reg-error-6.c: New test. > > --- > > Bootstrapped and regtested on s390 and x86_64. Ok for mainline? > Yea. Given the infrastructure you've built I think most if not all of what > would be needed to specify a small set of explicit registers ought to work, > even if that set of registers doesn't correspond to a register class.
Yes, just for the records: while iterating over constraints of one alternative, I install register filters and use the complement to update exclude start regs. This means, one constraint might influence start regs of a previous one. This is not to hard to fix and I will keep it on my to do list. I added some documentation and pushed this as r16-6805-g804912edbfc. Cheers, Stefan > > > Do you need to update extend.texi at all to document these cases are syntax > errors? > > > OK with the doc update (if needed). If the docs are already clear on this, > then the patch is OK as-is. > > jeff
