Reviewers: danno,

Message:
PTAL. Also replaced r10 with kScratchRegister in X64.

Description:
Use PopReturnAddressTo and PushReturnAddressFrom in
Generate_MarkCodeAsExecutedOncebuiltin function for X64

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

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+7, -7 lines):
  M src/x64/assembler-x64.cc
  M src/x64/builtins-x64.cc


Index: src/x64/assembler-x64.cc
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
index 9fe7b8392e7a3a55b188b8d2769ae3363b6172de..1502d7934098272debb7f7f9e8c6701bbeeba68a 100644
--- a/src/x64/assembler-x64.cc
+++ b/src/x64/assembler-x64.cc
@@ -110,8 +110,8 @@ void RelocInfo::PatchCodeWithCall(Address target, int guard_bytes) {
 #endif

   // Patch the code.
-  patcher.masm()->movq(r10, target, RelocInfo::NONE64);
-  patcher.masm()->call(r10);
+  patcher.masm()->movq(kScratchRegister, target, RelocInfo::NONE64);
+  patcher.masm()->call(kScratchRegister);

   // Check that the size of the code generated is as expected.
   ASSERT_EQ(Assembler::kCallSequenceLength,
Index: src/x64/builtins-x64.cc
diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc
index 2f5e0c1b9634792c4af4480c1c40b3a3eda82218..f65b25c6520885b4e414afe6831b16589aba99af 100644
--- a/src/x64/builtins-x64.cc
+++ b/src/x64/builtins-x64.cc
@@ -646,12 +646,12 @@ void Builtins::Generate_MarkCodeAsExecutedOnce(MacroAssembler* masm) {
   __ Popad();

   // Perform prologue operations usually performed by the young code stub.
-  __ pop(r10);   // Pop return address into scratch register.
+  __ PopReturnAddressTo(kScratchRegister);
   __ push(rbp);  // Caller's frame pointer.
   __ movq(rbp, rsp);
   __ push(rsi);  // Callee's context.
   __ push(rdi);  // Callee's JS Function.
-  __ push(r10);  // Push return address after frame prologue.
+  __ PushReturnAddressFrom(kScratchRegister);

   // Jump to point after the code-age stub.
   __ ret(0);
@@ -696,17 +696,17 @@ static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm,
   }

   // Get the full codegen state from the stack and untag it.
-  __ SmiToInteger32(r10, Operand(rsp, kPCOnStackSize));
+  __ SmiToInteger32(kScratchRegister, Operand(rsp, kPCOnStackSize));

   // Switch on the state.
   Label not_no_registers, not_tos_rax;
-  __ cmpq(r10, Immediate(FullCodeGenerator::NO_REGISTERS));
+  __ cmpq(kScratchRegister, Immediate(FullCodeGenerator::NO_REGISTERS));
   __ j(not_equal, &not_no_registers, Label::kNear);
   __ ret(1 * kPointerSize);  // Remove state.

   __ bind(&not_no_registers);
   __ movq(rax, Operand(rsp, kPCOnStackSize + kPointerSize));
-  __ cmpq(r10, Immediate(FullCodeGenerator::TOS_REG));
+  __ cmpq(kScratchRegister, Immediate(FullCodeGenerator::TOS_REG));
   __ j(not_equal, &not_tos_rax, Label::kNear);
   __ ret(2 * kPointerSize);  // Remove state, rax.



--
--
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