Request for review (L): 6797305: Add LoadUB and LoadUI opcode class

Christian Thalinger Christian.Thalinger at Sun.COM
Fri Mar 6 12:31:49 PST 2009


On Fri, 2009-03-06 at 12:19 -0800, Tom Rodriguez wrote:
> I think the problem is in MatchNode::cisc_spill_match in  
> formssel.cpp.  It appears to be selecting these new instructions as  
> cisc spill variants without checking that the intermediate load  
> operations match the size of the spill operation.  If you look in  
> ad_x86_64.cpp it dumps a big list of the cisc spill variants and you  
> can see that it's selecting the byte sized variant instead of the int  
> sized one.

It says:

//  convI2L_reg_reg can cisc-spill operand 1 to loadB2L

and later:

// Build CISC version of this instruction
MachNode *convI2L_reg_regNode::cisc_version( int offset, Compile* C ) {
  loadB2LNode *node = new (C) loadB2LNode();

> 
> Didn't you reorder the instruct definitions?   

No, I just uncommented some of them.  Maybe these have been commented
because of this bug...

> I think the cisc spill  
> matching selects the first one it sees and it's possible that now it's  
> finding the LoadB variant.  Anyway, I think cisc_spill_match should be  
> fixed to handle this correctly.

Do you think I can fix that or is it too complicated for a "beginner"?
At least I will have a look at it.

-- Christian




More information about the hotspot-compiler-dev mailing list