Reviewers: ulan,

Description:
SaveCallerSaveRegsisters needs to save all caller-save registers

While the macro assembler uses them as scratch registers, we need to
save them when calling out to builtins. In debug mode, the simulator
will clobber all registers after a call to a builtin which makes
regress-119926.js crash.

BUG=none
[email protected]
LOG=n

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

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

Affected files (+0, -8 lines):
  M src/a64/code-stubs-a64.h


Index: src/a64/code-stubs-a64.h
diff --git a/src/a64/code-stubs-a64.h b/src/a64/code-stubs-a64.h
index 4094887aaf69b03f9a68b06b406fe277f6634c2f..4f7cea330d2dd1ae227c46f4fb231a73c109f482 100644
--- a/src/a64/code-stubs-a64.h
+++ b/src/a64/code-stubs-a64.h
@@ -314,14 +314,6 @@ class RecordWriteStub: public PlatformCodeStub {
       scratch1_ = Register(pool_available.PopLowestIndex());
       scratch2_ = Register(pool_available.PopLowestIndex());

- // SaveCallerRegisters method needs to save caller saved register, however
-      // we dont bother saving x8, x9, ip0 and ip1 because they are used as
-      // scratch registers by the MacroAssembler.
-      saved_regs_.Remove(ip0);
-      saved_regs_.Remove(ip1);
-      saved_regs_.Remove(x8);
-      saved_regs_.Remove(x9);
-
// The scratch registers will be restored by other means so we don't need
       // to save them with the other caller saved registers.
       saved_regs_.Remove(scratch0_);


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