Request for review(S): 7011627: C1: call_RT must support targets that don't fit in wdisp30

Tom Rodriguez tom.rodriguez at oracle.com
Wed Jan 12 10:50:36 PST 2011


That looks great.

tom

On Jan 12, 2011, at 3:55 AM, Igor Veresov wrote:

> Tom, Vladimir,
> 
> Here is the fix in MacroAssembler:
> http://cr.openjdk.java.net/~iveresov/7011627/webrev.03/
> 
> igor
> 
> On 1/11/11 6:55 PM, Tom Rodriguez wrote:
>> 
>> On Jan 11, 2011, at 5:29 PM, Vladimir Kozlov wrote:
>> 
>>> There is an other place in stubGenerator_sparc.cpp:
>>> 
>>>    // do the call
>>>    BLOCK_COMMENT("call runtime_entry");
>>>    __ call(runtime_entry, relocInfo::runtime_call_type);
>>>    if (!VerifyThread)
>> 
>> It's not absolutely required here because these are generated in place but fixing it in MacroAsssembler would be nice and consistent.
>> 
>> tom
>> 
>>> 
>>> May be we should only fix MacroAssembler::call( address d, relocInfo::relocType rt ).
>>> 
>>> Vladimir
>>> 
>>> Igor Veresov wrote:
>>>> On 1/11/11 3:18 PM, Tom Rodriguez wrote:
>>>>> 
>>>>> On Jan 11, 2011, at 2:47 PM, Igor Veresov wrote:
>>>>> 
>>>>>> On 1/11/11 1:01 PM, Tom Rodriguez wrote:
>>>>>>> 
>>>>>>> On Jan 11, 2011, at 12:44 PM, Igor Veresov wrote:
>>>>>>> 
>>>>>>>> Webrev: http://cr.openjdk.java.net/~iveresov/7011627/webrev.00/
>>>>>>> 
>>>>>>> I like that you're trying to use the short one when you can but I don't think that test is sufficient.  The code is generated into a temporary blob and then moved into a RuntimeStub.  You could conceivably just reach in the temporary code blob but not reach in the final one.  I think you need to check that the  call is reachable from the highest and lowest point in the code cache instead.
>>>>>>> 
>>>>>> 
>>>>>> Yes, you're right of course.
>>>>>> 
>>>>>> How about this one:
>>>>>> http://cr.openjdk.java.net/~iveresov/7011627/webrev.01/
>>>>> 
>>>>> That looks good.  If you're feeling up to it, sparc.ad might benefit slightly from this since apparently it's almost always reachable so we could use the shorter sequence instead of always forcing the far call sequence.
>>>>> 
>>>> Sure, here is it: http://cr.openjdk.java.net/~iveresov/7011627/webrev.02
>>>> I changed the name of the parameter of emit_call_reloc() to reflect it's current purpose. And I also added ifdefs in C1 version.
>>>> igor
>>>>> tom
>>>>> 
>>>>>> 
>>>>>> Thanks,
>>>>>> igor
>>>>>> 
>>>>>> 
>>>>> 
>> 
> 



More information about the hotspot-compiler-dev mailing list