[kaffe] jit3, slots and float args

Svante Arvedahl exsvaar@softlab.se
Tue, 10 Sep 2002 14:02:30 +0200


Hi!
Maybe someone can help me with this. In my work of porting the jit3 to
IA-64 I have translated the most important icode instructions. I'm
trying to run the HelloWorldApp but the floating point arguments are
confusing me. 

When translating java/util/HashMap.<init>(IF)V I get three input
arguments. The macro METHOD_ARG_TYPE tells me that the first one is an
int, the second a float and the third a '(' (reference?). Do these
correspond to the slots localinfo[0].slot, localinfo[1].slot and
localinfo[2].slot in that order?
That's what I was presuming but the integer load 'iload' in the
following debug output of the first basic block in HashMap is trying to
access localinfo[1].slot which is associated with the float argument. 

@0:     aload 0
@1:     invokespecial 149
@4:     iload 1
@5:     iflt 14

Likewise the float load 'fload' in the next basic block is trying to
access the localinfo[2].slot, which is associated with the third
argument and thus not a float value.

@8:     fload 2
@9:     fconst 0.000000
@10:    fcmpg
@11:    ifgt 22

Could someone help me sort things out here?

Thanx
/Svante