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

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Jan 12 18:17:47 PST 2011


Good.

Vladimir

Igor Veresov wrote:
> Sorry guys, this is hopefully the last time:
> http://cr.openjdk.java.net/~iveresov/7011627/webrev.04
> 
> MachCallRuntimeNode::ret_addr_offset() needed fixing...
> 
> Thanks,
> igor
> 
> On 1/12/11 12:21 PM, Igor Veresov wrote:
>> Thanks Vladimir, Tom and Paul!
>>
>> igor
>>
>> On 1/12/11 10:50 AM, Tom Rodriguez wrote:
>>> 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