On 09.08.21 17:11, Jan Kiszka via Xenomai wrote:
> On 09.08.21 17:09, Philippe Gerum wrote:
>>
>> Jan Kiszka <jan.kis...@siemens.com> writes:
>>
>>> On 07.08.21 17:52, Jan Kiszka via Xenomai wrote:
>>>> From: Jan Kiszka <jan.kis...@siemens.com>
>>>>
>>>> Since gcc-9, direct usage of r7 is in conflict with compiler
>>>> allocations. Skip it.
>>>>
>>>> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
>>>> ---
>>>>  .../arch/arm/include/asm/xenomai/uapi/arith.h      | 14 +++++++-------
>>>>  1 file changed, 7 insertions(+), 7 deletions(-)
>>>>
>>>> diff --git a/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/arith.h 
>>>> b/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/arith.h
>>>> index cf897b44fa..4d3ae65411 100644
>>>> --- a/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/arith.h
>>>> +++ b/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/arith.h
>>>> @@ -79,9 +79,9 @@ mach_arm_nodiv_ullimd(const unsigned long long op,
>>>>    register unsigned frach __asm__ ("r3");
>>>>    register unsigned integ __asm__("r4") = rhs_integ;
>>>>    register unsigned opl __asm__ ("r6");
>>>> -  register unsigned oph __asm__ ("r7");
>>>> -  register unsigned tl __asm__("r8");
>>>> -  register unsigned th __asm__("r9");
>>>> +  register unsigned oph __asm__ ("r8");
>>>> +  register unsigned tl __asm__("r9");
>>>> +  register unsigned th __asm__("r10");
>>>>  
>>>>    xnarch_u64tou32(op, oph, opl);
>>>>    xnarch_u64tou32(frac, frach, fracl);
>>>> @@ -109,10 +109,10 @@ mach_arm_nodiv_llimd(const long long op,
>>>>    register unsigned frach __asm__ ("r3");
>>>>    register unsigned integ __asm__("r4") = rhs_integ;
>>>>    register unsigned opl __asm__ ("r6");
>>>> -  register unsigned oph __asm__ ("r7");
>>>> -  register unsigned tl __asm__("r8");
>>>> -  register unsigned th __asm__("r9");
>>>> -  register unsigned s __asm__("r10");
>>>> +  register unsigned oph __asm__ ("r8");
>>>> +  register unsigned tl __asm__("r9");
>>>> +  register unsigned th __asm__("r10");
>>>> +  register unsigned s __asm__("r11");
>>>
>>> Florian just pointed out that r11 is the frame pointer. Not many options
>>> remaining - ideas?
>>
>> Try r12(ip) adding it to the clobber list.
>>
> 
> Yeah, just had the same idea while browsing the ABI...
> 

...but clobbering doesn't work and should not be needed - s is already
specified as output.

Jan

-- 
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux

Reply via email to