Re: gas 2.16 and assembly macros -- entry_64.S build failure

From: Jan Beulich
Date: Fri Oct 01 2010 - 11:46:15 EST


>>> On 01.10.10 at 17:21, "H. Peter Anvin" <hpa@xxxxxxxxx> wrote:
> On 10/01/2010 01:27 AM, Jan Beulich wrote:
>>>>> On 01.10.10 at 02:26, "H. Peter Anvin" <hpa@xxxxxxxxx> wrote:
>>> ... but that doesn't work with the macros like movq_cfi. On those, we
>>
>> Is that only because of the register names used as operands to
>> movq_cfi etc not having the % specified right away? I don't think
>> that is really needed, i.e. the % could go there rather than being
>> added in the macro body - the .cfi_* directives are perfectly happy
>> with having the prefix there (and I don't know why it was coded
>> this way in the first place, as this made it less similar to the plain
>> movq while I thought the goal was to keep the differences to a
>> minimum).
>>
>
> No, and in fact the problem that spurred this discussion was in the use
> of immediates, not registers:
>
> pushq_cfi $(USER_DS)
>
> Obviously we can't add the % register prefix, since pushq can take
> either a register or an immediate (or, for that matter, a memory operand).

Perhaps a misunderstanding? I meant to move the % back into
movq_cfi's arguments, out of the macro body. pushq_cfi already
is in the shape we need for having the option of using cpp macros
when !CONFIG_AS_CFI.

>> The other alternative, albeit disliked by Ingo, continues to be to use
>> __stringify() on all non-trivial operands, which then wouldn't require
>> suppressing CONFIG_AS_CFI for pre-2.17 binutils.
>
> You should be taken out and shot for even thinking that, never mind
> putting it in writing...

Thank you!

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/