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

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Jan 11 17:29:07 PST 2011


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)

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