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