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