Commit 02c637e8 authored by Serguei Katkov's avatar Serguei Katkov
Browse files

Fix LoadValue{Wide} to free temp when reg classes are not matched



If the current register mapping does not match the required one we
are allocating a new temp and make a copy. After that we are clobbering
the old mapping of VR to physical register. However we can also free it
for future allocations as soon as it will not used more.

This is a fix of the bug I met. The reason of the dex2oat crash was that
GenInlinedMinMaxFP loaded two sources to fp registers. It appeared that
both of them were live in two pairs of core regs. As a result after
loading of them all 4 temps available for x86 platfrom are marked as in use.
As a result after an attempt to allocate new temp to load a constant
required by GenInlinedMinMaxFP register allocator reported that there is
no available temp registers.

Change-Id: I9233012e39de1e574761f3d9bd3cad80d743e522
Signed-off-by: default avatarSerguei Katkov <serguei.i.katkov@intel.com>
parent 19324d04
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment