From 9d463bd6a1a27fb724a4e05a9a701ccd28f138b1 Mon Sep 17 00:00:00 2001 From: "sgjesse@chromium.org" Date: Wed, 26 Jan 2011 12:31:35 +0000 Subject: [PATCH] ARM: Fix the type recording binary operation stub subtract Failure exposed by Sputning tests where the generic case tried to string add for subtract. Review URL: http://codereview.chromium.org/6339013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arm/code-stubs-arm.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc index 2a40bde..f3be2d3 100644 --- a/src/arm/code-stubs-arm.cc +++ b/src/arm/code-stubs-arm.cc @@ -2695,7 +2695,9 @@ void TypeRecordingBinaryOpStub::GenerateGeneric(MacroAssembler* masm) { __ bind(&call_runtime); // Try to add strings before calling runtime. - GenerateAddStrings(masm); + if (op_ == Token::ADD) { + GenerateAddStrings(masm); + } GenericBinaryOpStub stub(op_, mode_, r1, r0); __ TailCallStub(&stub); @@ -2703,6 +2705,8 @@ void TypeRecordingBinaryOpStub::GenerateGeneric(MacroAssembler* masm) { void TypeRecordingBinaryOpStub::GenerateAddStrings(MacroAssembler* masm) { + ASSERT(op_ == Token::ADD); + Register left = r1; Register right = r0; Label call_runtime; -- 2.7.4