On 31.01.2020 15:37, Wei Liu wrote:
> On Fri, Jan 31, 2020 at 03:24:07PM +0100, Jan Beulich wrote:
>> On 29.01.2020 21:20, Wei Liu wrote:
>>> I tried using the asm(".equ ..") trick but hit a problem with %c again.
>>>
>>> mm.c:5736:5: error: invalid 'asm': operand is not a condition code, invalid 
>>> operand code 'c'
>>>                asm ( ".equ HV_HCALL_PAGE, %c0; .global HV_HCALL_PAGE"
>>
>> Would you mind also indicating what the input operand actually
>> was? According to my looking at gcc sources when you first
>> mentioned this (on irc iirc), much depends on it actually be
>> recognizable as a constant by the compiler.
> 
> Something along the line:
> 
>   asm ( ".equ HV_HCALL_PAGE, %c0; .global HV_HCALL_PAGE"
>        :: "i" (__fix_x_to_virt(FIX_X_HV...))

Quite a bit of playing later, %P0 is documented, supported
already in gcc 4.1.x, and also used in a few cases by Linux.
%p0 would be another documented alternative, but support for
this looks to have been introduced later. Not being able to use
%c0 here still smells like a bug (and I guess I'll enter one.)

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to