From 252c3a890dd83f151cbf75431cb1985f869f4233 Mon Sep 17 00:00:00 2001 From: "m.m.capewell@googlemail.com" Date: Wed, 26 Mar 2014 10:36:52 +0000 Subject: [PATCH] ARM64: fix DoDeferredTaggedToI BUG= R=ulan@chromium.org Review URL: https://codereview.chromium.org/211063004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arm64/lithium-arm64.cc | 3 +-- src/arm64/lithium-codegen-arm64.cc | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/arm64/lithium-arm64.cc b/src/arm64/lithium-arm64.cc index 3d3ae97..60bf51e 100644 --- a/src/arm64/lithium-arm64.cc +++ b/src/arm64/lithium-arm64.cc @@ -1106,8 +1106,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { } else { LOperand* value = UseRegister(instr->value()); LOperand* temp1 = TempRegister(); - LOperand* temp2 = - instr->CanTruncateToInt32() ? TempRegister() : FixedTemp(d24); + LOperand* temp2 = instr->CanTruncateToInt32() ? NULL : FixedTemp(d24); res = DefineAsRegister(new(zone()) LTaggedToI(value, temp1, temp2)); res = AssignEnvironment(res); } diff --git a/src/arm64/lithium-codegen-arm64.cc b/src/arm64/lithium-codegen-arm64.cc index b1dca1f..5383896 100644 --- a/src/arm64/lithium-codegen-arm64.cc +++ b/src/arm64/lithium-codegen-arm64.cc @@ -5522,7 +5522,6 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr, if (instr->truncating()) { Register output = ToRegister(instr->result()); - Register scratch2 = ToRegister(temp2); Label check_bools; // If it's not a heap number, jump to undefined check. @@ -5535,11 +5534,11 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr, __ Bind(&check_bools); Register true_root = output; - Register false_root = scratch2; + Register false_root = scratch1; __ LoadTrueFalseRoots(true_root, false_root); - __ Cmp(scratch1, true_root); + __ Cmp(input, true_root); __ Cset(output, eq); - __ Ccmp(scratch1, false_root, ZFlag, ne); + __ Ccmp(input, false_root, ZFlag, ne); __ B(eq, &done); // Output contains zero, undefined is converted to zero for truncating -- 2.7.4