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