[PATCH] gas: Fix \+ expansion for .irp and .irpc

Fangrui Song maskray@gcc.gnu.org
Thu May 16 07:57:33 GMT 2024


On Thu, May 16, 2024, 00:53 Jan Beulich <jbeulich@suse.com> wrote:

> On 16.05.2024 09:00, Fangrui Song wrote:
> > On Wed, May 15, 2024 at 11:54 PM Fangrui Song <maskray@google.com>
> wrote:
> >>
> >> On Wed, May 15, 2024 at 10:53 PM Jan Beulich <jbeulich@suse.com> wrote:
> >>>
> >>> On 16.05.2024 04:42, Fangrui Song wrote:
> >>>> --- /dev/null
> >>>> +++ b/gas/testsuite/gas/macros/count-repeat.s
> >>>> @@ -0,0 +1,8 @@
> >>>> +     .rept 1
> >>>> +     .print "\+"
> >>>> +     .endr
> >>>> +     .print "\+"
> >>>> +     .endr
> >>>> +     .irpc i,1
> >>>> +     .print "\+"
> >>>> +     .endr
> >>
> >>> I can't help thinking that this can't possibly assemble (or if it does,
> >>> there's a bug elsewhere), for (presumably) missing an .irp line to
> >>> match the middle .endr.
> >>>
> >>> Just to mention it - I'm intending to extend \+ support to at least
> .irp
> >>> and .irpc; whether that can also reasonably be done for .rept I haven't
> >>> checked yet.
> >>>
> >>> Jan
> >>
> >> I agree, extending \+ operator .irp, .irpc, and .rept will make a lot
> of sense.
> >>
> >> We will finally get a for loop   (unsigned i = 0; i != count; i++)
> >>
> >> .rept 3
> >> .print "\+"   # 0 1 2
> >> .endp
> >>
> >> Previously, I resorted to .irpc i,0123456789   \i   .endr when the
> >> loop count is <= 10, but there is no elegant way to reference \i when
> >> the loop count is > 10.
> >
> > What should \+ expand to for nested loops?
> >
> > .rept 2
> >   .rept 2
> >     .print "n\+"
> >   .endr
> > .endr
>
> For macros I expect (didn't try yet) it's the outermost one, so I'd expect
> .irp / .irpc / .rept would want to match that. I'll want to see how it ends
> up most logically, yet without going through ugly extra hoops.
>
> Jan
>

Outermost one looks good to me.👍

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://sourceware.org/pipermail/binutils/attachments/20240516/77c576eb/attachment.htm>


More information about the Binutils mailing list