Subject: Re: ARM ELF TODO list
To: None <port-arm@netbsd.org>
From: Reinoud Zandijk <reinoud@netbsd.org>
List: port-arm
Date: 10/23/2001 02:22:41
> > > > Still to do:
> > > > * (gcc) Ensure 8-byte stack alignment on function entry
> > Yes.  If you can find any assembly functions that do this, they should be
> > fixed.
> currently the list looks like this:

Status unkown :
> in sys/arch:
> arm/arm32/bcopyinout.S
> arm/arm32/copystr.S
> arm/arm32/spl.S
> arm/arm32/fusu.S
> arm/arm32/exception.S
> arm/arm32/cpuswitch.S
> arm/arm32/locore.S
> arm/arm/sigcode.S
> arm/arm/blockio.S
> arm/arm/cpufunc_asm.S
> arm/arm/bus_space_notimpl.S
> arm/footbridge/footbridge_irq.S
> arm/sa11x0/sa11x0_irq.S
.....
> arm32/ofw/ofw_irq.S
> arm32/shark/fiq.S
> arm32/isa/isa_irq.S
> dnard/dnard/fiq.S
> dnard/ofw/ofw_irq.S
> hpcarm/sa11x0/sa11x0_irq.S
> hpcarm/hpcarm/cpuswitch.S
> hpcarm/hpcarm/exception.S
> hpcarm/hpcarm/fusu.S
> hpcarm/hpcarm/locore.S
> hpcarm/hpcarm/spl.S
> arm26/arm26/copyinout.S
> arm26/arm26/fiq_util.S
> arm26/arm26/locore.S
> arm26/ioc/if_eca_fiq.S
> arm26/podulebus/podloader_asm.S
> 
> in sys/lib/libkern/arch/arm:
> bcopy.S
> byte_swap_2.S
> byte_swap_4.S
> bzero.S
> divsi3.S
> memcpy.S
> memmove.S
> 
> in lib/libc/arch/arm:
> ./sys/brk.S
> ./sys/cerror.S
> ./sys/ptrace.S
> ./sys/sbrk.S
> ./sys/setlogin.S
> ./sys/__clone.S
> ./gen/__setjmp14.S
> ./gen/__sigsetjmp14.S
> ./gen/_setjmp.S
> ./gen/byte_swap_2.S
> ./gen/byte_swap_4.S
> ./gen/divsi3.S
> ./gen/setjmp.S
> ./gen/sigsetjmp.S
> ./string/bcopy.S
> ./string/bzero.S
> ./string/memcpy.S
> ./string/memmove.S

Look ok but am not sure :
> arm32/fpe-arm/armfpe_glue.S


Checked files (now in arm/iomd) : could not find any 8 byte violations; the
scarse times that stuff is pushed on stack its done in pairs... so if the
entry condition is valid these routines dont change it :

> arm32/iomd/iomd_io_asm.S
> arm32/iomd/iomd_fiq.S
> arm32/iomd/iomd_iic.S
> arm32/iomd/iomd_irq.S

These are correct if the C compiler generates a 8 byte stack frame to begin 
with (arm32/podulebus now in acorn32/podulebus) :

> arm32/podulebus/podulebus_io_asm.S
> arm32/podulebus/icside_io_asm.S
> arm32/podulebus/simide_io_asm.S
> arm/mainbus/mainbus_io_asm.S

Any comments?
Reinoud