Thread.sleep() strangeness

Alexandre Oliva oliva at dcc.unicamp.br
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
already).

> 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 dcc.unicamp.br mailto:aoliva at acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



More information about the kaffe mailing list