gas x86-32: allow non-absolute segment values for lcall/ljmp?

H.J. Lu hjl.tools@gmail.com
Wed Sep 30 15:22:51 GMT 2020


On Wed, Sep 30, 2020 at 7:28 AM TK Chia <u1049321969@caramail.com> wrote:
>
> Hello Mr. Beulich,
>
> >> $ gas/as-new --32 test5.s
> >> test5.s: Assembler messages:
> >> test5.s:2: Error: can't handle non absolute segment in `lcall'
> >> ======================================================================
> >>
> >> I find this a rather strange restriction.  If it is fine, I would like
> >> to propose a patch to GNU as to remove this restriction for `lcall' and
> >> `ljmp' commands.
> >
> > One of the many issues that I have on my todo list, yet that I didn't
> > find time yet to deal with. Afaic you're very welcome to take care of
> > this issue (ideally in more general a manner, but I guess you won't
> > want to go farther than you need to for your immediate purposes).
>
> Thank you very much.
>
> I have enclosed my proposed patch.  It basically handles the segment
> operand in much the same way as the offset operand (except with a fixed
> size).  I believe this should be quite general, and I hope it is correct.
>
>         * config/tc-i386.c (output_interseg_jump): Allow non-absolute
>         segment operand for immediate lcall/ljmp.
>
> Thank you!

Please open a binutils bug at

https://sourceware.org/bugzilla/

and update your patch with a testcase and ChangeLog reference to the
binutils bug.

Thanks

-- 
H.J.


More information about the Binutils mailing list