OSDN Git Service

ART: Fix x86_64 GenSelect case when destination is Ref
authorJean Christophe Beyler <jean.christophe.beyler@intel.com>
Thu, 4 Sep 2014 15:34:28 +0000 (08:34 -0700)
committerIan Rogers <irogers@google.com>
Thu, 4 Sep 2014 16:12:47 +0000 (09:12 -0700)
commit3f51e7d942c22edaab3a7e703a1e6a2dd6a26f77
treecfdba0c84040397903068e25b885d112c68958bd
parentf96ad932cf2c4f814f92ed3a8679d50aa1b02dcd
ART: Fix x86_64 GenSelect case when destination is Ref

Reference in x86_64 is a 64-bit solo register. As a result, the invocation
  of OpRegImm results in an error when Select opcode of the kind:
    ref = boolean ? null : null;
because opRegImm does not support 64-bit destination for OpMov.

The case above is only possible for ref because no one other constant except
  null is possible.

Bug: 17327895
Change-Id: I7541e744ec1c8619711712fd17be72764efcf3a8
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
compiler/dex/quick/x86/int_x86.cc
test/003-omnibus-opcodes/expected.txt
test/003-omnibus-opcodes/src/GenSelect.java [new file with mode: 0644]
test/003-omnibus-opcodes/src/Main.java