harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Egor Pasko <egor.pa...@gmail.com>
Subject Re: discussion for H5022
Date Fri, 06 Feb 2009 10:16:18 GMT
On the 0x550 day of Apache Harmony xiaoming gu wrote:
> In latest version, I couldn't see the code mentioned in this JIRA.

me too :(

> And the only operations about heap base in HIR2LIR pass are for
> zeroForComparison, ldnull, simpleLdInd, simpleStInd and
> ldRef. Thanks.

so, to sum up the compressed mode operation: zeroForComparison,
simpleLdInd and simpleStInd all make a copy of heap base imm operand
via mov (heapBaseOpnd() does that). Seems to be right.

But ldnull does not do that. I understand that add/sub to ldnull imm
operand will never happen on the code selection stage. But what about
cmp? Suppose cmp accepts this 64 bit imm operand (heap base), then
bang, it is truncated by encoder.

Thinking of a possible reproducer in java: "if (obj != null) { ... }",
seems like too common to be working incorrectly :) Still I do not
understand what happens in this case. Xiaoming, do you have a clue?

Egor Pasko

View raw message