Request for reviews .03 (L): 6814842: Load shortening optimizations
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Tue May 12 10:26:16 PDT 2009
Christian,
in immL13m7() it should be <=
(-4096L <= (n->get_long() + 7L))
^
Can you explain how indOffset13m7 memory reference is generated
when offset does not fit into 13 bits? I did not find the explanation
in this thread.
For example:
+ format %{ "LDSB $mem+1,$dst\t! short -> byte" %}
+ ins_encode %{
+ __ ldsb($mem$$Address, $dst$$Register, 1);
+ %}
Let mem.disp == -4100 (so that -4100+7 > -4096) and with ldsb(mem, reg, 1)
you will get mem.disp == -4099 which does not fit into 13 bits.
Thanks,
Vladimir
Tom Rodriguez wrote:
> looks good.
>
> tom
>
> On May 12, 2009, at 3:02 AM, Christian Thalinger wrote:
>
>> On Mon, 2009-05-11 at 13:38 -0700, Tom Rodriguez wrote:
>>> I don't think the assert in formssel.cpp is needed because it
>>> replicates the logic in this test that guards enabling cisc spill.
>>> I'd given that to you originally before I fully realized what was
>>> going wrong.
>>
>> I removed the assert.
>>
>>>
>>> 1127 if( def_oper == NameList::Not_in_list && instr->num_opnds()
>>> == num_opnds()) {
>>>
>>> in sparc.ad you use simm13 instead of 13 bit in the comments since
>>> that's the sparc terminology.
>>
>> I changed the ones I added, the others are just copied.
>>
>> http://cr.openjdk.java.net/~twisti/6814842/webrev.03/
>>
>> -- Christian
>>
>
More information about the hotspot-compiler-dev
mailing list