Reviewers: Rodolph Perfetta (ARM), ulan,

Message:
PTAL

Description:
A64: Store/restore flags in deopt-every-n-times check

BUG=none
[email protected],[email protected]
LOG=n

Please review this at https://codereview.chromium.org/141203005/

SVN Base: https://v8.googlecode.com/svn/branches/experimental/a64

Affected files (+5, -3 lines):
  M src/a64/lithium-codegen-a64.cc


Index: src/a64/lithium-codegen-a64.cc
diff --git a/src/a64/lithium-codegen-a64.cc b/src/a64/lithium-codegen-a64.cc
index ee5c0ecec3fa53d4f16c7499799515245d390420..64da578e5ccf5667e7f44cf9063dd64781341319 100644
--- a/src/a64/lithium-codegen-a64.cc
+++ b/src/a64/lithium-codegen-a64.cc
@@ -981,21 +981,23 @@ Deoptimizer::BailoutType LCodeGen::DeoptimizeHeader(
     Label not_zero;
ExternalReference count = ExternalReference::stress_deopt_count(isolate());

-    __ Push(x0, x1);
+    __ Push(x0, x1, x2);
+    __ Mrs(x2, NZCV);
     __ Mov(x0, Operand(count));
     __ Ldr(w1, MemOperand(x0));
     __ Subs(x1, x1, 1);
     __ B(gt, &not_zero);
     __ Mov(w1, FLAG_deopt_every_n_times);
     __ Str(w1, MemOperand(x0));
-    __ Pop(x0, x1);
+    __ Pop(x0, x1, x2);
     ASSERT(frame_is_built_);
     __ Call(entry, RelocInfo::RUNTIME_ENTRY);
     __ Unreachable();

     __ Bind(&not_zero);
     __ Str(w1, MemOperand(x0));
-    __ Pop(x0, x1);
+    __ Msr(NZCV, x2);
+    __ Pop(x0, x1, x2);
   }

   return bailout_type;


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to