Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src



Module Name:    src
Committed By:   rin
Date:           Sun May 31 11:43:38 UTC 2020

Modified Files:
        src/lib/libc/arch/m68k/gen: Makefile.inc
        src/sys/lib/libkern/arch/m68k: Makefile.inc
Added Files:
        src/common/lib/libc/arch/m68k/gen: muldi3.S

Log Message:
Add m68k assembler version of __muldi3().

This is intended for 68060:
  - GCC does not emit __muldi3() for 68020-40, that have 32 * 32 --> 64 mulul
  - mulsl (and moveml), used in this code, are not implemented for 68010

In comparison with that from compiler_rt, this version saves:
  - 12% of processing time
  - 12 bytes of stack
  - 50 bytes of code size
Also, slightly faster, memory saving, and smaller than libgcc version.

By examining with evcnt(9), __muldi3() is invoked more than 1000 times per
sec by kernel, which should justify to introduce assembler version of this
function.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/common/lib/libc/arch/m68k/gen/muldi3.S
cvs rdiff -u -r1.37 -r1.38 src/lib/libc/arch/m68k/gen/Makefile.inc
cvs rdiff -u -r1.37 -r1.38 src/sys/lib/libkern/arch/m68k/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index