Request for review (L): 6797305: Add LoadUB and LoadUI opcode class
Christian Thalinger
Christian.Thalinger at Sun.COM
Fri Mar 6 11:00:20 PST 2009
On Fri, 2009-03-06 at 10:29 -0800, Tom Rodriguez wrote:
> I'm very confused by your explanation of what's going wrong.
> Originally you said:
Okay, sorry. Trying to rephrase.
>
> mm, JPRT failed and it seems there is a matcher problem. It matches:
>
> match(Set dst (ConvI2L (LoadUB mem)));
>
> instead of:
>
> match(Set dst (ConvI2L src));
>
> But there is no LoadUB node around. Are there any matcher restrictions
> that I don't know about?
>
> But below you say that if you remove that instruction it matches the
> ConvI2L LoadUB pattern so which one did it do? Also what is "that
> instruction"? What kind of node is src if it's not a LoadUB?
It matches the loadB2L instruction in x86_64.ad and I meant loadB2L by
"that instruction". But when I comment loadB2L it simply matches the
next one, and that is loadUB2L.
> What kind of node is src if it's not a LoadUB?
Good question. The correct instruction generated by unmodified HotSpot
is:
029 movslq R10, [RSP + #0 (32-bit)] # i2l
and the corresponding store before is:
019 movl [rsp + #0], RSI # spill
So I think src is a Param (if that's a valid node).
-- Christian
More information about the hotspot-compiler-dev
mailing list