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

Igor Veresov igor.veresov at oracle.com
Wed Jan 12 18:13:51 PST 2011


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