OSDN Git Service

Fix EABI call bridge.
authorAndy McFadden <fadden@android.com>
Thu, 6 Jan 2011 21:12:53 +0000 (13:12 -0800)
committerAndy McFadden <fadden@android.com>
Fri, 7 Jan 2011 19:27:36 +0000 (11:27 -0800)
commit175ce8a9192e5c6dfde8493231939e30e6c40eb6
tree9e7a28bfbbbd65b2cf7aeb4b567e397dea343c76
parent4fa9da7e20ada53eac75216e038a2887d85df19e
Fix EABI call bridge.

Fix two bugs in the "slow" path, which is only exercised when calling a
native method with more than 28 words of arguments.  First, the code wasn't
skipping past the return type in the shorty signature, so the stack layout
was likely to be messed up if you had long/double args.  Second, the type
check on the value destined for r3 was broken, which would cause problems
if the method's first arg was 32-bit and the second arg was 64-bit.

Bug 3328925

(Cherry-pick from dalvik-dev)

Change-Id: I30a1972cf394dad993df574f17b8770ba9e840dd
vm/arch/arm/CallEABI.S