Subject: Re: kernel compile
To: Patrick Welche <prlw1@cam.ac.uk>
From: Mark Brinicombe <mark@causality.com>
List: port-arm32
Date: 06/01/1998 19:54:18
On Mon, 1 Jun 1998, Patrick Welche wrote:

> cc  -O2 -Werror -Wall -I. -I../../../../arch -I../../../.. -nostdinc
>   -DMACHINE_NEW_NONCONTIG -DCPU_ARM6 -DIOMD -DRISCPC -DARMFPE -DFIFO
>   -DINET -DPFIL_HOOKS -DCOMPAT_13 -DCOMPAT_12 -DSYSVMSG -DSYSVSEM
>   -DSYSVSHM -DSHMMAXPGS="0x400" -DKTRACE -DIRQSTATS -DMOUSE_IOC_ACK
>   -DDIAGNOSTIC -DPOSTMORTEM -DDDB -DIPFILTER_LOG -DMAXUSERS=32 -D_KERNEL
>   -Darm32 -Wcomment  -c ../../../../arch/arm32/arm32/in_cksum_arm32.c
> /var/tmp/cc02038a.s: Assembler messages:
> /var/tmp/cc02038a.s:71: Warning: Register range not in ascending order
> /var/tmp/cc02038a.s:74: Warning: Register range not in ascending order
> /var/tmp/cc02038a.s:77: Warning: Register range not in ascending order
> /var/tmp/cc02038a.s:80: Warning: Register range not in ascending order
> /var/tmp/cc02038a.s:92: Warning: Register range not in ascending order
> /var/tmp/cc02038a.s:95: Warning: Register range not in ascending order
> /var/tmp/cc02038a.s:105: Warning: Register range not in ascending order
> 
> Is that worth worrying about? (Compiling with the 1.3-alpha comp/base sets)
Hi,
  Nope this can be ingored as they are only assembler warnings.

THis is a result of mixing inline assembly instructions with C code. The
code uses some LDM instructions but GCC dictates the register usage as
thus as a result you get instructions like

ldm	r0, {r1, r3, r2}

being generated.

In this case it is not a problem and the assemble will just reorder the
registers which is really what was wanted.

in_cksum_arm32.c at some point could be replaced with a pure assembly
version but I don't expect that it would give much of a speed increase so
would be more of a cleanup thing than anything else.

Cheers,
				Mark