summaryrefslogtreecommitdiff
path: root/compiler/optimizing/intrinsics_x86.cc
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2016-09-05 18:12:13 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2016-09-05 18:12:13 +0000
commit86dc59ebe25cfe36d4edb39c2b7b2653f079448b (patch)
tree446d80551ab72701914ed08ac18fcaeffd6555b1 /compiler/optimizing/intrinsics_x86.cc
parentb0f443217306b8a307f73d35cb27c1cac2e1c360 (diff)
parent70e97462116a47ef2e582ea29a037847debcc029 (diff)
Merge "Avoid excessive spill slots for slow paths."
Diffstat (limited to 'compiler/optimizing/intrinsics_x86.cc')
-rw-r--r--compiler/optimizing/intrinsics_x86.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/optimizing/intrinsics_x86.cc b/compiler/optimizing/intrinsics_x86.cc
index ef4d0f1d2e..d17f85ec8d 100644
--- a/compiler/optimizing/intrinsics_x86.cc
+++ b/compiler/optimizing/intrinsics_x86.cc
@@ -1976,6 +1976,9 @@ static void CreateIntIntIntToIntLocations(ArenaAllocator* arena,
LocationSummary::kCallOnSlowPath :
LocationSummary::kNoCall,
kIntrinsified);
+ if (can_call && kUseBakerReadBarrier) {
+ locations->SetCustomSlowPathCallerSaves(RegisterSet()); // No caller-save registers.
+ }
locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
locations->SetInAt(1, Location::RequiresRegister());
locations->SetInAt(2, Location::RequiresRegister());