On 5/30/16 22:25, Chen Gang wrote:
> On 5/30/16 21:32, Chen Gang wrote:
>> On 5/30/16 03:18, Mike Stump wrote:
>>> On May 29, 2016, at 3:39 AM, cheng...@emindsoft.com.cn wrote:
>>>>
>>>> r10 may also be as parameter for the nested function, so need save it
>>>> before call mcount.
>>>
>>> mcount can have a special abi where it preserves more registers than one 
>>> would otherwise expect.  I'm wondering if you know what registers it saves 
>>> or doesn't touch?  Does this fix any bug found by running tests, or just by 
>>> inspection?
>>>

Oh, I forgot bundle optimization. We can {st sp, 10; addi sp, sp, -8}.

Also I shall add PR target/71331 for the comments.

If no any additional reply within 3 days, I shall send patch v2 for it
within this week.

Thanks.

>>
>> It is about Bug71331, which I reported yesterday.
>>
>> For nested function, r10 is treated as the stack pointer for parameters,
>> mcount really save r10, but tilegx also use r10 to save lr, so cause
>> this issue ("move r10, lr; jal __mcount").
>>
>> What I have done just like gcc x86 has done ("push r10; callq mcount").
>>
> 
> After this patch, nested-func-4.c can passes compiling and running under
> tilegx qemu. :-)
> 
> Thanks.
> 

-- 
Chen Gang (陈刚)

Managing Natural Environments is the Duty of Human Beings.

Reply via email to