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