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 15:58:50 PST 2011


Using signed subtraction is incorrect.
Use  pointer_delta(b, a, 1) instead of intptr_t(b) - intptr_t(a).

Could you also verify that on x86 naxt "call" do correct thing
for similar case: call(RuntimeAddress(entry)) ?

Thanks,
Vladimir

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/
> 
> Thanks,
> igor
> 
> 


More information about the hotspot-compiler-dev mailing list