Inline assembly clobbered registers
Christian Hildner
christian.hildner@hob.de
Mon Nov 10 07:07:00 GMT 2003
Falk Hueffner schrieb:
>Christian Hildner <christian.hildner@hob.de> writes:
>
>
>
>>Falk Hueffner schrieb:
>>
>>
>>>Christian Hildner <christian.hildner@hob.de> writes:
>>>
>>>
>>>>I need a temporary general register inside the inline assembly
>>>>code. The definition for a particular register is possible by for
>>>>example "eax". But how to define a general register that the
>>>>compiler is allowed to choose as it is possible with input/output
>>>>registers who are referenced by %0, %1, ... ? So simply to allow "r"
>>>>in the clobbered list and reference it by %x in the assembly code.
>>>>
>>>>
>>>Why can't you just make it an output variable?
>>>
>>>
>>>
>>I made it an input one instead.
>>
>>
>
>That will lead to wrong code, since gcc thinks you won't change it.
>
Inspecting the output I found that there will be no corruption of
registers. But since it may not be 100% save I will switch to the usage
of output registers (as you suggested).
>>This is possible, but it would be nicer to allow an unspecified
>>general register in the clobbered list.
>>
>>
>
>But since the functioinality is trivially available by another way, I
>don't think it's worth adding complexity to the compiler for this.
>
I am just wondering to be at least the only one that would need that
feature.
Thanks
Christian
More information about the Gcc-help
mailing list