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 18:17:44 PST 2011


That looks even better.  ;)

tom

On Jan 12, 2011, at 6:13 PM, 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