OSDN Git Service

Avoid sign extension in packed-switch.
authorElliott Hughes <enh@google.com>
Tue, 17 Jul 2012 23:31:30 +0000 (16:31 -0700)
committerElliott Hughes <enh@google.com>
Wed, 18 Jul 2012 00:11:16 +0000 (17:11 -0700)
commit51801371a9b0f829303d326a2300518177dde3e8
tree98f65c6bc85e7d24fa9b7e7b24bdcec39fc738de
parent89cf125cd95a7df3a713cb3d3d39a033304e474c
Avoid sign extension in packed-switch.

This code (at least in the ARM version) is trying to assign to r0 and r1
from C by returning a 64-bit result. The mistaken use of signed integers
for pointers can lead to sign extension if the JIT code cache is at a
sufficiently high address.

Bug: 6799823
Bug: 6703991

(cherry picked from commit 2d0c1c2dbe44458ebb199c47ce1047f266db5349)

Conflicts:

vm/compiler/codegen/mips/CalloutHelper.h
vm/compiler/codegen/mips/CodegenDriver.cpp

Change-Id: Id4699fdd0b3d61abe9c92874832b8561df4fa797
vm/compiler/codegen/arm/CalloutHelper.h
vm/compiler/codegen/arm/CodegenDriver.cpp
vm/oo/Resolve.cpp