time_t on sparc64
brandt at fokus.fraunhofer.de
Wed Oct 15 02:02:47 PDT 2003
On Wed, 15 Oct 2003, John-Mark Gurney wrote:
JG>Marcel Moolenaar wrote this message on Wed, Oct 15, 2003 at 00:44 -0700:
JG>> Yes. The MI code is already done and there's not much MD code that
JG>> is expected to break. It's mostly the structures that change. This
JG>> is especially painful on sparc64 because it's big-endian. I assume
JG>> that sparc64 passes syscall arguments in registers, so the syscalls
JG>> that take a time_t do not change except that there's no sign extension
JG>> prior to use. You can preserve the ABI until 2038 by ignoring the
JG>> upper 32-bits in that case.
JG>There is if you load a signed 32bit value into the register... sparc
JG>will automaticly sign extend the register when loading a 32bit value..
JG>This was done to be backwards compatible with sparcv8.
JG>So the question is, does the values get loaded into different registers?
JG>or are they packed into a single register?
I guess, IF we go the road now to change time_t to 64 bit, we should NOW
break the ABI (if this change breaks the ABI). This brings us more in line
with other systems and platforms and is a lot less problematic now that we
have only -current than later. I suggest we do it NOW especially given
that ia64 already does this and, obviously, has worked out the MI
brandt at fokus.fraunhofer.de, harti at freebsd.org
More information about the freebsd-sparc64