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 09:22:30 PST 2011
Looks good.
Vladimir
On 1/12/11 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