[PATCH v7.1 01/13] ARC: ABI Implementation

Adhemerval Zanella adhemerval.zanella at linaro.org
Wed Jul 1 15:45:54 EDT 2020



On 01/07/2020 16:36, Vineet Gupta wrote:
> On 7/1/20 9:50 AM, Adhemerval Zanella via Libc-alpha wrote:
>>
>>
>> On 30/06/2020 21:06, Vineet Gupta via Libc-alpha wrote:
>>> This code deals with the ARC ABI.
>>> ---
>>>    Changes since v7:
>>>      - Used void * (iso int *) in tls-macros.h
>>
>> LGTM, with just a couple of syntax nits below.
>>
>> Reviewed-by: Adhemerval Zanella  <adhemerval.zanella at linaro.org>
> 
> Thx. I suppose the process for new ports is to have a Reviewed-by on all patches,
> squash them and push in 1 go (although in past I was asked to push the ARC elf
> header patch).

I think there is no need to squash them up in one commit, but I think
it would be better to commit them at the same time.

> Also do we need more than 1 Reviewed-by for this to be "push worthy" ?

I don't think so, unless someone raise some questioning on the review
itself.

I plan to finish them up by the end of the week.

> 
>>> +ENTRY (__longjmp)
>>> +
>>> +	LDR (blink, r0,  0)
>>> +	LDR (sp,    r0,  1)
>>> +	LDR (fp,    r0,  2)
>>> +	LDR (gp,    r0,  3)
>>> +
>>> +	LDR (r13,   r0,  4)
>>> +	LDR (r14,   r0,  5)
>>> +	LDR (r15,   r0,  6)
>>> +	LDR (r16,   r0,  7)
>>> +	LDR (r17,   r0,  8)
>>> +	LDR (r18,   r0,  9)
>>> +	LDR (r19,   r0, 10)
>>> +	LDR (r20,   r0, 11)
>>> +	LDR (r21,   r0, 12)
>>> +	LDR (r22,   r0, 13)
>>> +	LDR (r23,   r0, 14)
>>> +	LDR (r24,   r0, 15)
>>> +
>>> +	mov.f  r0, r1
>>> +	j.d    [blink]
>>> +	mov.z  r0, 1	/* don't return 0 to setjmp callsite from longjmp.  */
>>> +
>>> +END (__longjmp)
>>
>> Ok, you have removed r25 save as pre previous discussion.
> 
> Right, and GP is being saved now.
> 
>>> diff --git a/sysdeps/arc/bits/setjmp.h b/sysdeps/arc/bits/setjmp.h
>>> new file mode 100644
>>> index 000000000000..6bba95fafe0f
>>> --- /dev/null
>>> +++ b/sysdeps/arc/bits/setjmp.h
>>> @@ -0,0 +1,26 @@
>>> +/* Define the machine-dependent type `jmp_buf'.  ARC version.
>>
>> I think current trend is to just use apostrophe instead of the grave
>> accent in such cases.
> 
> Ok changed.
> 
>>> +reloc_index (uintptr_t plt0, uintptr_t pltn, size_t size)
>>> +{
>>> +  unsigned long int idx = pltn - plt0;
>>> +
>>> +  /* PLT trampoline is 16 bytes. */
>>
>> Double space after period.
> 
> Fixed.
> 
>>> +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
>>> +  ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf_sp (_jmpbuf) - (_adj)))
>>> +
>>> +/* We use the normal longjmp for unwinding.  */
>>> +#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
>>
>> Ok. As a side note teh jmpbuf-unwind.h is candidate for some consolidation
>> (the same macros are replicated in each architecture).
> 
> OK.
> 



More information about the linux-snps-arc mailing list