Thread.sleep() strangeness

Alexandre Oliva oliva at
Thu Apr 30 05:27:07 PDT 1998

Matthew P Gleeson <gleeson at ERC.MsState.Edu> writes:

> I think I can see where the problem occurs: the sysdepCallMethod()
> macro in config/sparc/common.h doesn't do the right thing with the
> 64-bit jlong argument to Thread.sleep().

Correct, it seems not to be prepared to handle longs. :-(

I'll try to fix that (unless it is fixed in the latest snapshot

> Admittedly it's my first day doing SPARC assembler, but I don't even
> see how the macro works at all: it seems to assume that the SPARC has
> 64-bit registers for %o0-%o5.

>                 ld [%2],%%o0                                            \n\
>                 ld [%2+8],%%o1                                          \n\

The point is that the argument list is an array of jvalues, and
sizeof(jvalue)==8.  So, except for longs and doubles, only even words
contain useful data.

Alexandre Oliva
mailto:oliva at mailto:aoliva at
Universidade Estadual de Campinas, SP, Brasil

More information about the kaffe mailing list