Request for review: 7011490 Wrong computation results in Test6880034
Vladimir Danushevsky
vladimir.danushevsky at oracle.com
Thu Mar 10 10:39:06 PST 2011
So for x86 should that be just:
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in
calculation");
Thanks,
Vlad
On Mar 10, 2011, at 1:33 PM, Tom Rodriguez wrote:
>
> On Mar 10, 2011, at 10:16 AM, Vladimir Danushevsky wrote:
>
>>
>> On Mar 10, 2011, at 12:31 PM, Tom Rodriguez wrote:
>>
>>>
>>> On Mar 10, 2011, at 9:21 AM, Vladimir Danushevsky wrote:
>>>
>>>> http://cr.openjdk.java.net/~vladidan/7011490/webrev.00/
>>>>
>>>> LinearScan::append_scope_value_for_operand() appends high and low
>>>> registers of the double operand based on big endianess. On ARM
>>>> platform (little endian) that causes shift in the registers
>>>> allocation when copied to an expression stack during c2i
>>>> deoptimization.
>>>> x86 (being a LE) uses stack slot for a double op, therefore it's
>>>> not affected.
>>>
>>> Are you saying that x86 doesn't use this path? That doesn't seem
>>> right to me.
>>
>> x86 uses the path but opr->fpu_regnrLo() = opr->fpu_regnrHi,
>> therefore no difference in behavior for that architecture.
>
> I read through it but missed that. Looks good then, though you
> might correct the x86 comment:
>
> assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in
> calculation (only fpu_regnrHi is used)");
>
> tom
>
>>
>> Thanks,
>> Vlad
>>>
>>>
>>>> I want to make sure Zero target is not broken by that change as
>>>> it could be built little endian as well. Could anyone comment on
>>>> that please?
>>>
>>> Zero doesn't use our compilers so it can't be effected.
>>>
>>> tom
>>>
>>>>
>>>> Thanks,
>>>> Vlad
>>>>
>>>>
>>>
>>
>
More information about the hotspot-dev
mailing list