History log of /openbsd-src/lib/libc/arch/sparc64/gen/divrem.m4 (Results 1 – 3 of 3)
Revision Date Author Comments
# 6f046b4a 12-Mar-2011 deraadt <deraadt@openbsd.org>

In the original sparc V7 book (and in the v8 book), the divrem leaf code used
local registers for a few temporaries. This was changed to use two global
registers. Maybe to permit use in-kernel with

In the original sparc V7 book (and in the v8 book), the divrem leaf code used
local registers for a few temporaries. This was changed to use two global
registers. Maybe to permit use in-kernel without conflicting with the
register V7 register window handlers. (Was this done by Chris Torek? Is this
related to Gordon Irlam's work? Or was it in NetBSD? Hard to tell because
NetBSD removed their original cvs tree.)

In V8 the ABI was tightened; more global registers became offlimits in
different ways. We started supporting sun4m, and did not consider this.
As a result, the global registers chosen are the wrong choice. In
particular, %g7 is a poor choice for upcoming TLS work. It looks like
it is safer to use %g5 and %g6 since these functions are "system software".
All re-entrant parts of the system save it.

On sparc64 these functions are in libc per ABI requirement, but are unused.

On sparc, they occur in bootblocks (no reentrancy), kernel (reentrancy saves
globals; kernel is not ABI compliant), userland libc (signal handlers save
globals), and ld.so (symbol binding is not re-entrant on its own).

Discussed rather extensively with guenther, kettenis, miod and drahn.

show more ...


# 6580fee3 02-Jun-2003 millert <millert@openbsd.org>

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


# de1699b1 29-Aug-2001 art <art@openbsd.org>

bunch of files from sparc.