OSDN Git Service

Fix LSRA bug with explicit register temporaries
authorMark Mendell <mark.p.mendell@intel.com>
Fri, 3 Jul 2015 12:26:41 +0000 (08:26 -0400)
committerNicolas Geoffray <ngeoffray@google.com>
Mon, 6 Jul 2015 13:50:50 +0000 (14:50 +0100)
commit283b8541546e7673d33d104241623d07c91cf500
treeef57722d3b0ea62c079b014c6ca3636fb4e5d54d
parent51f38e3adf58ba4e35b5374fb8c4b87cb3112abd
Fix LSRA bug with explicit register temporaries

A temporary with an explicit RegisterLocation, such as ESI on x86 didn't
have the register marked as allocated.  This caused it to not be
saved/restored in the prologue/epilogue, causing problems in the caller
routine, which expected it to be saved.  Found while implementing
https://android-review.googlesource.com/#/c/157522/.

Change-Id: I22ca2b24c2d21b1c6ab6cfb7dec26cb38034a891
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
compiler/optimizing/code_generator.h
compiler/optimizing/locations.h
compiler/optimizing/register_allocator.cc