Home | History | Annotate | only in /src/sys/lib/libkern/arch/sh3
History log of /src/sys/lib/libkern/arch/sh3
RevisionDateAuthorComments
 1.19 04-Aug-2011  uwe For unsignad integer division gcc used to emit a call to __udivsi3
"millicode" function that uses compiler-private ABI. Newer gcc uses
heavily tuned __udivsi3_i4i that is NOT compatible with __udivsi3
because it's expected to clobber different registers. We don't want
to link the kernel against libgcc and we don't have resources to write
heavily tuned version ourselves, so clone __udivsi3 but adjust it to
conform to the __udivsi3_i4i clobber spec.

Ditto for signed division.

You can make gcc use old routines with -mdiv=call-div1 to avoid few
extra instructions to save/restore the right registers in the signed
division funcion.
 1.18 14-Aug-2009  dsl Move that majority of the 'SRCS+= foo.c' into the main Makefile.libkern.
Any .S files added by the arch/*/Makefile.inc cause the .c file to
be excluded.
Specific exclusions added using NO_SRCS to match previous files.
At least sparc, sparc64, i386, amd64 and vax GENERIC still build.
(There is a fubar with the naming of the byte-swap files ...)
 1.17 12-Aug-2009  dsl Split the lines that add .c to SRCS from those that add .S
No changes (apart from the order) intended.
 1.16 14-Mar-2007  uwe branches: 1.16.36;
Provide __movmemSI12_i4 (gcc4) a.k.a. __movstrSI12_i4 (gcc3) that gcc
emits for sh4 to copy 12 bytes at certain optimization levels.
Discovered by compiling landisk kernel with -Os.

Use gcc3 naming ("movstr") to match the rest of the "movstr" files.
 1.15 11-Dec-2005  christos branches: 1.15.24; 1.15.26; 1.15.30; 1.15.32;
merge ktrace-lwp.
 1.14 14-Nov-2003  uwe branches: 1.14.16;
Use assembler version of bswap64.
 1.13 13-Nov-2003  uwe Eliminate bzero.
 1.12 08-Nov-2003  uwe Nuke bcopy. Move the code to memmove.S (which it is) make memmove the
primary entry point and comment out the bcopy entry point.

Kernels before and after the change are identical.
 1.11 08-Nov-2003  jdolecek no need for bcmp.c
 1.10 20-Nov-2002  itohy branches: 1.10.6;
Use assembly version of bzero() and memset().
 1.9 21-Sep-2002  chs add strtoul.c, it's now used in MI code.
 1.8 05-Sep-2002  msaitoh Add __movstr_i4_{odd,even} for -m4.
Written by SHIMIZU Ryo.
 1.7 24-Aug-2002  itohy Use assembly version of ffs(3).
 1.6 01-Nov-2000  thorpej branches: 1.6.2; 1.6.4; 1.6.16;
Add a strcasecmp(), modified from chopps's strncasecmp().
 1.5 21-Jul-2000  msaitoh compile byte_swap_2.S and byte_swap_4.S
 1.4 09-Jun-2000  msaitoh branches: 1.4.2;
new bcopy.S
 1.3 20-Apr-2000  msaitoh branches: 1.3.2;
asm bcopy() for sh3
 1.2 21-Oct-1999  msaitoh add strncasecmp.c
 1.1 13-Sep-1999  itojun branches: 1.1.2; 1.1.4; 1.1.6;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.6.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.1.4.1 15-Nov-1999  fvdl Sync with -current
 1.1.2.2 22-Nov-2000  bouyer Sync with HEAD.
 1.1.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.3.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.4.2.1 11-Aug-2000  msaitoh Pullup revision 1.5 (approved by thorpej):

compile byte_swap_*.S
 1.6.16.1 29-Aug-2002  gehenna catch up with -current.
 1.6.4.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.6.4.1 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.6.2.4 11-Dec-2002  thorpej Sync with HEAD.
 1.6.2.3 18-Oct-2002  nathanw Catch up to -current.
 1.6.2.2 17-Sep-2002  nathanw Catch up to -current.
 1.6.2.1 27-Aug-2002  nathanw Catch up to -current.
 1.10.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.10.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.10.6.1 03-Aug-2004  skrll Sync with HEAD
 1.14.16.1 03-Sep-2007  yamt sync with head.
 1.15.32.1 11-Jul-2007  mjf Sync with head.
 1.15.30.1 10-Apr-2007  ad Sync with head.
 1.15.26.1 24-Mar-2007  yamt sync with head.
 1.15.24.1 20-Apr-2007  bouyer Pull up following revision(s) (requested by uwe in ticket #585):
sys/lib/libkern/arch/sh3/Makefile.inc: revision 1.16
sys/lib/libkern/arch/sh3/movstrSI12_i4.S: revision 1.1
Provide __movmemSI12_i4 (gcc4) a.k.a. __movstrSI12_i4 (gcc3) that gcc
emits for sh4 to copy 12 bytes at certain optimization levels.
Discovered by compiling landisk kernel with -Os.
Use gcc3 naming ("movstr") to match the rest of the "movstr" files.
 1.16.36.1 19-Aug-2009  yamt sync with head.
 1.7 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.6 22-May-2006  uwe branches: 1.6.2; 1.6.58; 1.6.62; 1.6.72;
G/c #ifdef PIC we inherited from the userland.
 1.5 22-Apr-2006  uwe branches: 1.5.2; 1.5.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.4 20-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8;
Use common sources with userland.
 1.3 14-Feb-2001  msaitoh branches: 1.3.40;
don't profile (use NENTRY() and ALTENTRY())
 1.2 14-Feb-2001  msaitoh _C_LABEL()
 1.1 13-Sep-1999  itojun branches: 1.1.2;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.2.1 12-Mar-2001  bouyer Sync with HEAD.
 1.3.40.1 21-Jun-2006  yamt sync with head.
 1.4.8.1 24-May-2006  yamt sync with head.
 1.4.6.1 01-Jun-2006  kardel Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.4.1 19-Jun-2006  chap Sync with head.
 1.5.2.2 11-May-2006  elad sync with head
 1.5.2.1 22-Apr-2006  elad file ashiftrt.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.6.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.6.62.1 04-May-2009  yamt sync with head.
 1.6.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.6.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.6.2.1 22-May-2006  tron file ashiftrt.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.6 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.5 22-May-2006  uwe branches: 1.5.2; 1.5.58; 1.5.62; 1.5.72;
G/c #ifdef PIC we inherited from the userland.
 1.4 22-Apr-2006  uwe branches: 1.4.2; 1.4.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.3 20-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8;
Use common sources with userland.
 1.2 14-Feb-2001  msaitoh branches: 1.2.40;
_C_LABEL()
 1.1 13-Sep-1999  itojun branches: 1.1.2;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.2.1 12-Mar-2001  bouyer Sync with HEAD.
 1.2.40.1 21-Jun-2006  yamt sync with head.
 1.3.8.1 24-May-2006  yamt sync with head.
 1.3.6.1 01-Jun-2006  kardel Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.4.4.1 19-Jun-2006  chap Sync with head.
 1.4.2.2 11-May-2006  elad sync with head
 1.4.2.1 22-Apr-2006  elad file ashlsi3.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.5.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.5.62.1 04-May-2009  yamt sync with head.
 1.5.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.5.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.2.1 22-May-2006  tron file ashlsi3.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.6 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.5 22-May-2006  uwe branches: 1.5.2; 1.5.58; 1.5.62; 1.5.72;
G/c #ifdef PIC we inherited from the userland.
 1.4 22-Apr-2006  uwe branches: 1.4.2; 1.4.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.3 20-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8;
Use common sources with userland.
 1.2 14-Feb-2001  msaitoh branches: 1.2.40;
_C_LABEL()
 1.1 13-Sep-1999  itojun branches: 1.1.2;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.2.1 12-Mar-2001  bouyer Sync with HEAD.
 1.2.40.1 21-Jun-2006  yamt sync with head.
 1.3.8.1 24-May-2006  yamt sync with head.
 1.3.6.1 01-Jun-2006  kardel Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.4.4.1 19-Jun-2006  chap Sync with head.
 1.4.2.2 11-May-2006  elad sync with head
 1.4.2.1 22-Apr-2006  elad file ashrsi3.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.5.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.5.62.1 04-May-2009  yamt sync with head.
 1.5.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.5.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.2.1 22-May-2006  tron file ashrsi3.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.4 08-Nov-2003  uwe Nuke bcopy. Move the code to memmove.S (which it is) make memmove the
primary entry point and comment out the bcopy entry point.

Kernels before and after the change are identical.
 1.3 20-Nov-2002  itohy branches: 1.3.6;
memcpy() and memmove() must return the first parameter.
Problem found by itohy, fixed by SHIMIZU Ryo.
 1.2 09-Jun-2000  msaitoh branches: 1.2.4; 1.2.6;
new bcopy.S
 1.1 20-Apr-2000  msaitoh branches: 1.1.2;
asm bcopy() for sh3
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.2.6.1 11-Dec-2002  thorpej Sync with HEAD.
 1.2.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.2.4.1 09-Jun-2000  bouyer file bcopy.S was added on branch thorpej_scsipi on 2000-11-20 18:09:30 +0000
 1.3.6.1 03-Aug-2004  skrll Sync with HEAD
 1.6 14-Apr-2006  nonaka Always _LOCORE is defined for standalone program.
 1.5 04-Feb-2006  uwe branches: 1.5.2; 1.5.4; 1.5.6;
Truncate the argument to 16 bit with extu.w
 1.4 11-Dec-2005  christos branches: 1.4.2; 1.4.4; 1.4.6;
merge ktrace-lwp.
 1.3 09-Nov-2003  uwe branches: 1.3.16;
Compile identity ntoh*/hton* only for big endian case.
 1.2 21-Jul-2000  msaitoh branches: 1.2.24;
support "big endian", too.
 1.1 13-Sep-1999  itojun branches: 1.1.2; 1.1.12;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.12.1 11-Aug-2000  msaitoh Pullup revision 1.5 (approved by thorpej):

support big endian, too.
 1.1.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.4.2.1 18-Feb-2006  yamt sync with head.
 1.5.6.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.4.1 19-Apr-2006  elad sync with head.
 1.5.2.1 24-May-2006  yamt sync with head.
 1.5 14-Apr-2006  nonaka Always _LOCORE is defined for standalone program.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12;
merge ktrace-lwp.
 1.3 09-Nov-2003  uwe branches: 1.3.16;
Compile identity ntoh*/hton* only for big endian case.
 1.2 21-Jul-2000  msaitoh branches: 1.2.24;
support "big endian", too.
 1.1 13-Sep-1999  itojun branches: 1.1.2; 1.1.12;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.12.1 11-Aug-2000  msaitoh Pullup revision 1.2 (approved by thorpej):

support big endian, too.
 1.1.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.2.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.24.1 03-Aug-2004  skrll Sync with HEAD
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.4.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.10.1 19-Apr-2006  elad sync with head.
 1.4.8.1 24-May-2006  yamt sync with head.
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.2 11-Dec-2005  christos merge ktrace-lwp.
 1.1 14-Nov-2003  uwe branches: 1.1.4;
bswap64 written in assembler.
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 14-Nov-2003  skrll file byte_swap_8.S was added on branch ktrace-lwp on 2004-08-03 10:53:49 +0000
 1.2 13-Nov-2003  uwe Eliminate bzero.
 1.1 20-Nov-2002  itohy branches: 1.1.2; 1.1.8;
Assembly version of bzero()/memset().
Written by SHIMIZU Ryo.
 1.1.8.1 03-Aug-2004  skrll Sync with HEAD
 1.1.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.1 20-Nov-2002  thorpej file bzero.S was added on branch nathanw_sa on 2002-12-11 06:46:25 +0000
 1.5 20-Dec-2005  christos Use common sources with userland.
 1.4 01-Sep-2002  itohy branches: 1.4.2; 1.4.24;
Save 1-4 instructions on all cases except for the ret=0 case.

This is probably the last version from me. :)
You are welcome to speed it up, of course. :)

Here's a benchmark on SH-4 200MHz.
9.2% faster if all the cases occur evenly.

return value C version previous vers this version speed ratio
of ffs() (ns/call) *1 (ns/call) (ns/call) *2 (*1/*2)
 1.3 28-Aug-2002  itohy branches: 1.3.2;
Slightly improved version of ffs(3).
Partially from SHIMIZU Ryo <ryo@iij.ad.jp>. Thanks.
Some cases are slower, but other most cases are faster.

Here's a benchmark on SH-4 200MHz.

return value C version previous vers this version speed ratio
of ffs() (ns/call) *1 (ns/call) (ns/call) *2 (*1/*2)
 1.2 24-Aug-2002  itohy branches: 1.2.2;
Oops, SYSLIBC_SCCS -> LIBC_SCCS
 1.1 24-Aug-2002  itohy Assembly version of ffs(3).
Confirmed to return the same value as that of the C version.

The results of a simple benchmark on SH-4 200MHz, is shown below.
I think this shows acceptable performance.

return value C version this version speed
of ffs() (ns/call) (ns/call) ratio
 1.2.2.3 17-Sep-2002  nathanw Catch up to -current.
 1.2.2.2 27-Aug-2002  nathanw Catch up to -current.
 1.2.2.1 24-Aug-2002  nathanw file ffs.S was added on branch nathanw_sa on 2002-08-27 23:47:46 +0000
 1.3.2.2 29-Aug-2002  gehenna catch up with -current.
 1.3.2.1 28-Aug-2002  gehenna file ffs.S was added on branch gehenna-devsw on 2002-08-29 05:23:20 +0000
 1.4.24.1 21-Jun-2006  yamt sync with head.
 1.4.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.4.2.1 01-Sep-2002  jdolecek file ffs.S was added on branch kqueue on 2002-09-06 08:48:31 +0000
 1.6 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.5 22-May-2006  uwe branches: 1.5.2; 1.5.58; 1.5.62; 1.5.72;
G/c #ifdef PIC we inherited from the userland.
 1.4 22-Apr-2006  uwe branches: 1.4.2; 1.4.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.3 20-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8;
Use common sources with userland.
 1.2 14-Feb-2001  msaitoh branches: 1.2.40;
_C_LABEL()
 1.1 13-Sep-1999  itojun branches: 1.1.2;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.2.1 12-Mar-2001  bouyer Sync with HEAD.
 1.2.40.1 21-Jun-2006  yamt sync with head.
 1.3.8.1 24-May-2006  yamt sync with head.
 1.3.6.1 01-Jun-2006  kardel Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.4.4.1 19-Jun-2006  chap Sync with head.
 1.4.2.2 11-May-2006  elad sync with head
 1.4.2.1 22-Apr-2006  elad file lshrsi3.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.5.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.5.62.1 04-May-2009  yamt sync with head.
 1.5.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.5.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.2.1 22-May-2006  tron file lshrsi3.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.3 20-Dec-2005  christos Use common sources with userland.
 1.2 09-Jun-2000  msaitoh branches: 1.2.4; 1.2.44;
new bcopy.S
 1.1 20-Apr-2000  msaitoh branches: 1.1.2;
asm bcopy() for sh3
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.2.44.1 21-Jun-2006  yamt sync with head.
 1.2.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.2.4.1 09-Jun-2000  bouyer file memcpy.S was added on branch thorpej_scsipi on 2000-11-20 18:09:31 +0000
 1.6 20-Dec-2005  christos Use common sources with userland.
 1.5 11-Dec-2005  christos merge ktrace-lwp.
 1.4 09-Nov-2003  uwe branches: 1.4.16;
Get rid of bcopy relics. Minimize diffs against the libc version.
 1.3 08-Nov-2003  uwe Nuke bcopy. Move the code to memmove.S (which it is) make memmove the
primary entry point and comment out the bcopy entry point.

Kernels before and after the change are identical.
 1.2 09-Jun-2000  msaitoh branches: 1.2.4; 1.2.28;
new bcopy.S
 1.1 20-Apr-2000  msaitoh branches: 1.1.2;
asm bcopy() for sh3
 1.1.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.2.28.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.28.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.28.1 03-Aug-2004  skrll Sync with HEAD
 1.2.4.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.2.4.1 09-Jun-2000  bouyer file memmove.S was added on branch thorpej_scsipi on 2000-11-20 18:09:31 +0000
 1.4.16.1 21-Jun-2006  yamt sync with head.
 1.2 20-Dec-2005  christos Use common sources with userland.
 1.1 20-Nov-2002  itohy branches: 1.1.2; 1.1.24;
Assembly version of bzero()/memset().
Written by SHIMIZU Ryo.
 1.1.24.1 21-Jun-2006  yamt sync with head.
 1.1.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.1 20-Nov-2002  thorpej file memset.S was added on branch nathanw_sa on 2002-12-11 06:46:25 +0000
 1.9 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.8 22-May-2006  uwe branches: 1.8.2; 1.8.58; 1.8.62; 1.8.72;
Provide __movmem* aliases to __movstr* functions.
Gcc4 uses movmem, older versions use movstr.
 1.7 22-May-2006  uwe G/c #ifdef PIC we inherited from the userland.
 1.6 22-Apr-2006  uwe branches: 1.6.2; 1.6.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.5 20-Dec-2005  christos branches: 1.5.4; 1.5.6; 1.5.8;
Use common sources with userland.
 1.4 11-Dec-2005  christos merge ktrace-lwp.
 1.3 26-Feb-2005  perry branches: 1.3.4;
nuke trailing whitespace
 1.2 14-Feb-2001  msaitoh branches: 1.2.24; 1.2.32; 1.2.34;
_C_LABEL()
 1.1 13-Sep-1999  itojun branches: 1.1.2;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.2.1 12-Mar-2001  bouyer Sync with HEAD.
 1.2.34.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.2.32.1 29-Apr-2005  kent sync with -current
 1.2.24.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.3.4.1 21-Jun-2006  yamt sync with head.
 1.5.8.1 24-May-2006  yamt sync with head.
 1.5.6.1 01-Jun-2006  kardel Sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.6.4.1 19-Jun-2006  chap Sync with head.
 1.6.2.2 11-May-2006  elad sync with head
 1.6.2.1 22-Apr-2006  elad file movstr.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.8.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.8.62.1 04-May-2009  yamt sync with head.
 1.8.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.8.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.8.2.1 22-May-2006  tron file movstr.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.2 16-Sep-1999  msaitoh unused file (we have an asm version)
 1.1 13-Sep-1999  itojun Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.8 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.7 22-May-2006  uwe branches: 1.7.2; 1.7.58; 1.7.62; 1.7.72;
Provide __movmem* aliases to __movstr* functions.
Gcc4 uses movmem, older versions use movstr.
 1.6 22-May-2006  uwe G/c #ifdef PIC we inherited from the userland.
 1.5 22-Apr-2006  uwe branches: 1.5.2; 1.5.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.4 20-Dec-2005  christos branches: 1.4.4; 1.4.6; 1.4.8;
Use common sources with userland.
 1.3 14-Feb-2001  msaitoh branches: 1.3.40;
don't profile (use NENTRY() and ALTENTRY())
 1.2 14-Feb-2001  msaitoh ENTRY()
 1.1 09-Jun-2000  msaitoh branches: 1.1.4; 1.1.6;
movstrSI*() for gcc -Os
 1.1.6.3 12-Mar-2001  bouyer Sync with HEAD.
 1.1.6.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.1.6.1 09-Jun-2000  bouyer file movstrSI.S was added on branch thorpej_scsipi on 2000-11-20 18:09:31 +0000
 1.1.4.2 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 09-Jun-2000  minoura file movstrSI.S was added on branch minoura-xpg4dl on 2000-06-22 17:09:28 +0000
 1.3.40.1 21-Jun-2006  yamt sync with head.
 1.4.8.1 24-May-2006  yamt sync with head.
 1.4.6.1 01-Jun-2006  kardel Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.5.4.1 19-Jun-2006  chap Sync with head.
 1.5.2.2 11-May-2006  elad sync with head
 1.5.2.1 22-Apr-2006  elad file movstrSI.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.7.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.7.62.1 04-May-2009  yamt sync with head.
 1.7.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.7.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.7.2.1 22-May-2006  tron file movstrSI.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.2 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.1 14-Mar-2007  uwe branches: 1.1.4; 1.1.6; 1.1.10; 1.1.12; 1.1.22; 1.1.42; 1.1.46; 1.1.56;
Provide __movmemSI12_i4 (gcc4) a.k.a. __movstrSI12_i4 (gcc3) that gcc
emits for sh4 to copy 12 bytes at certain optimization levels.
Discovered by compiling landisk kernel with -Os.

Use gcc3 naming ("movstr") to match the rest of the "movstr" files.
 1.1.56.1 19-Jan-2009  skrll Sync with HEAD.
 1.1.46.1 04-May-2009  yamt sync with head.
 1.1.42.1 17-Jan-2009  mjf Sync with HEAD.
 1.1.22.2 03-Sep-2007  yamt sync with head.
 1.1.22.1 14-Mar-2007  yamt file movstrSI12_i4.S was added on branch yamt-lazymbuf on 2007-09-03 14:41:30 +0000
 1.1.12.2 11-Jul-2007  mjf Sync with head.
 1.1.12.1 14-Mar-2007  mjf file movstrSI12_i4.S was added on branch mjf-ufs-trans on 2007-07-11 20:10:28 +0000
 1.1.10.2 20-Apr-2007  bouyer Pull up following revision(s) (requested by uwe in ticket #585):
sys/lib/libkern/arch/sh3/Makefile.inc: revision 1.16
sys/lib/libkern/arch/sh3/movstrSI12_i4.S: revision 1.1
Provide __movmemSI12_i4 (gcc4) a.k.a. __movstrSI12_i4 (gcc3) that gcc
emits for sh4 to copy 12 bytes at certain optimization levels.
Discovered by compiling landisk kernel with -Os.
Use gcc3 naming ("movstr") to match the rest of the "movstr" files.
 1.1.10.1 14-Mar-2007  bouyer file movstrSI12_i4.S was added on branch netbsd-4 on 2007-04-20 20:35:32 +0000
 1.1.6.2 10-Apr-2007  ad Sync with head.
 1.1.6.1 14-Mar-2007  ad file movstrSI12_i4.S was added on branch vmlocking on 2007-04-10 13:26:18 +0000
 1.1.4.2 24-Mar-2007  yamt sync with head.
 1.1.4.1 14-Mar-2007  yamt file movstrSI12_i4.S was added on branch yamt-idlelwp on 2007-03-24 14:56:07 +0000
 1.6 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.5 22-May-2006  uwe branches: 1.5.2; 1.5.58; 1.5.62; 1.5.72;
Provide __movmem* aliases to __movstr* functions.
Gcc4 uses movmem, older versions use movstr.
 1.4 22-May-2006  uwe G/c #ifdef PIC we inherited from the userland.
 1.3 22-Apr-2006  uwe branches: 1.3.2; 1.3.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.2 20-Dec-2005  christos branches: 1.2.4; 1.2.6; 1.2.8;
Use common sources with userland.
 1.1 05-Sep-2002  msaitoh branches: 1.1.2; 1.1.4; 1.1.26;
Add __movstr_i4_{odd,even} for -m4.
Written by SHIMIZU Ryo.
 1.1.26.1 21-Jun-2006  yamt sync with head.
 1.1.4.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.4.1 05-Sep-2002  jdolecek file movstr_i4.S was added on branch kqueue on 2002-10-10 18:43:26 +0000
 1.1.2.2 17-Sep-2002  nathanw Catch up to -current.
 1.1.2.1 05-Sep-2002  nathanw file movstr_i4.S was added on branch nathanw_sa on 2002-09-17 21:22:35 +0000
 1.2.8.1 24-May-2006  yamt sync with head.
 1.2.6.1 01-Jun-2006  kardel Sync with head.
 1.2.4.1 09-Sep-2006  rpaulo sync with head
 1.3.4.1 19-Jun-2006  chap Sync with head.
 1.3.2.2 11-May-2006  elad sync with head
 1.3.2.1 22-Apr-2006  elad file movstr_i4.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.5.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.5.62.1 04-May-2009  yamt sync with head.
 1.5.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.5.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.2.1 22-May-2006  tron file movstr_i4.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.6 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.5 22-May-2006  uwe branches: 1.5.2; 1.5.58; 1.5.62; 1.5.72;
G/c #ifdef PIC we inherited from the userland.
 1.4 22-Apr-2006  uwe branches: 1.4.2; 1.4.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.3 20-Dec-2005  christos branches: 1.3.4; 1.3.6; 1.3.8;
Use common sources with userland.
 1.2 14-Feb-2001  msaitoh branches: 1.2.40;
_C_LABEL()
 1.1 13-Sep-1999  itojun branches: 1.1.2;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.2.1 12-Mar-2001  bouyer Sync with HEAD.
 1.2.40.1 21-Jun-2006  yamt sync with head.
 1.3.8.1 24-May-2006  yamt sync with head.
 1.3.6.1 01-Jun-2006  kardel Sync with head.
 1.3.4.1 09-Sep-2006  rpaulo sync with head
 1.4.4.1 19-Jun-2006  chap Sync with head.
 1.4.2.2 11-May-2006  elad sync with head
 1.4.2.1 22-Apr-2006  elad file mulsi3.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.5.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.5.62.1 04-May-2009  yamt sync with head.
 1.5.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.5.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.2.1 22-May-2006  tron file mulsi3.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.12 05-Aug-2011  uwe Reword the comment about "millicode" nature of these functions and add
it to sdivsi3.S too.

Remove !_KERNEL code left over from the days when we shared these
files with userland.

Use .L prefix for local label.
 1.11 14-Jul-2011  mrg revert the _i4i aliases. they are not the right thing.
 1.10 06-Jul-2011  mrg add weak aliases for __sdivsi3_i4i and __udivsi3_i4i.
 1.9 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.8 22-May-2006  uwe branches: 1.8.2; 1.8.58; 1.8.62; 1.8.72;
G/c #ifdef PIC we inherited from the userland.
 1.7 22-Apr-2006  uwe branches: 1.7.2; 1.7.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.6 20-Dec-2005  christos branches: 1.6.4; 1.6.6; 1.6.8;
Use common sources with userland.
 1.5 11-Dec-2005  christos merge ktrace-lwp.
 1.4 07-Aug-2003  agc branches: 1.4.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.3 09-Sep-2000  msaitoh branches: 1.3.24;
check _STANDALONE macro, too.
 1.2 03-Jan-2000  msaitoh branches: 1.2.4;
don't clobber r4 and r5
 1.1 13-Sep-1999  itojun branches: 1.1.2;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.2.4.1 21-Sep-2000  msaitoh pullup revision 1.3 (approved by thorpej):

check _STANDALONE macro, too (for boot-loader)
 1.3.24.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.24.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.24.1 03-Aug-2004  skrll Sync with HEAD
 1.4.16.1 21-Jun-2006  yamt sync with head.
 1.6.8.1 24-May-2006  yamt sync with head.
 1.6.6.1 01-Jun-2006  kardel Sync with head.
 1.6.4.1 09-Sep-2006  rpaulo sync with head
 1.7.4.1 19-Jun-2006  chap Sync with head.
 1.7.2.2 11-May-2006  elad sync with head
 1.7.2.1 22-Apr-2006  elad file sdivsi3.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.8.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.8.62.1 04-May-2009  yamt sync with head.
 1.8.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.8.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.8.2.1 22-May-2006  tron file sdivsi3.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.2 05-Aug-2011  uwe Reword the comment about "millicode" nature of these functions and add
it to sdivsi3_i4i.S too.
 1.1 04-Aug-2011  uwe For unsignad integer division gcc used to emit a call to __udivsi3
"millicode" function that uses compiler-private ABI. Newer gcc uses
heavily tuned __udivsi3_i4i that is NOT compatible with __udivsi3
because it's expected to clobber different registers. We don't want
to link the kernel against libgcc and we don't have resources to write
heavily tuned version ourselves, so clone __udivsi3 but adjust it to
conform to the __udivsi3_i4i clobber spec.

Ditto for signed division.

You can make gcc use old routines with -mdiv=call-div1 to avoid few
extra instructions to save/restore the right registers in the signed
division funcion.
 1.11 05-Aug-2011  uwe Reword the comment about "millicode" nature of these functions and add
it to sdivsi3.S too.

Remove !_KERNEL code left over from the days when we shared these
files with userland.

Use .L prefix for local label.
 1.10 14-Jul-2011  mrg revert the _i4i aliases. they are not the right thing.
 1.9 06-Jul-2011  mrg add weak aliases for __sdivsi3_i4i and __udivsi3_i4i.
 1.8 07-Jan-2009  uwe These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden". I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
 1.7 22-May-2006  uwe branches: 1.7.2; 1.7.58; 1.7.62; 1.7.72;
G/c #ifdef PIC we inherited from the userland.
 1.6 22-Apr-2006  uwe branches: 1.6.2; 1.6.4;
libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common. Move it to sys/lib/libkern/arch/sh3.
 1.5 20-Dec-2005  christos branches: 1.5.4; 1.5.6; 1.5.8;
Use common sources with userland.
 1.4 11-Dec-2005  christos merge ktrace-lwp.
 1.3 07-Aug-2003  agc branches: 1.3.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.2 21-Dec-1999  msaitoh branches: 1.2.28;
check _STANDALONE
 1.1 13-Sep-1999  itojun branches: 1.1.2; 1.1.8;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.1.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.2.28.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.28.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.28.1 03-Aug-2004  skrll Sync with HEAD
 1.3.16.1 21-Jun-2006  yamt sync with head.
 1.5.8.1 24-May-2006  yamt sync with head.
 1.5.6.1 01-Jun-2006  kardel Sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.6.4.1 19-Jun-2006  chap Sync with head.
 1.6.2.2 11-May-2006  elad sync with head
 1.6.2.1 22-Apr-2006  elad file udivsi3.S was added on branch elad-kernelauth on 2006-05-11 23:31:08 +0000
 1.7.72.1 19-Jan-2009  skrll Sync with HEAD.
 1.7.62.1 04-May-2009  yamt sync with head.
 1.7.58.1 17-Jan-2009  mjf Sync with HEAD.
 1.7.2.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.7.2.1 22-May-2006  tron file udivsi3.S was added on branch peter-altq on 2006-05-24 15:50:42 +0000
 1.2 05-Aug-2011  uwe Reword the comment about "millicode" nature of these functions and add
it to sdivsi3_i4i.S too.
 1.1 04-Aug-2011  uwe For unsignad integer division gcc used to emit a call to __udivsi3
"millicode" function that uses compiler-private ABI. Newer gcc uses
heavily tuned __udivsi3_i4i that is NOT compatible with __udivsi3
because it's expected to clobber different registers. We don't want
to link the kernel against libgcc and we don't have resources to write
heavily tuned version ourselves, so clone __udivsi3 but adjust it to
conform to the __udivsi3_i4i clobber spec.

Ditto for signed division.

You can make gcc use old routines with -mdiv=call-div1 to avoid few
extra instructions to save/restore the right registers in the signed
division funcion.

RSS XML Feed