From d1bcfaf0348de472279cf512f7b0ebb3526404e7 Mon Sep 17 00:00:00 2001 From: mstarzinger Date: Wed, 8 Apr 2015 05:06:52 -0700 Subject: [PATCH] [ia32] Fix MacroAssembler::Move for int64 to float64 moves. R=bmeurer@chromium.org TEST=test262-es6/language/expressions/addition/S9.3_A4.1_T2 Review URL: https://codereview.chromium.org/1071543003 Cr-Commit-Position: refs/heads/master@{#27663} --- src/ia32/macro-assembler-ia32.cc | 8 ++++---- test/test262-es6/test262-es6.status | 1 - test/test262/test262.status | 1 - 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc index 1bd31b3..81438c3 100644 --- a/src/ia32/macro-assembler-ia32.cc +++ b/src/ia32/macro-assembler-ia32.cc @@ -2377,11 +2377,11 @@ void MacroAssembler::Move(XMMRegister dst, uint32_t src) { void MacroAssembler::Move(XMMRegister dst, uint64_t src) { - uint32_t lower = static_cast(src); - uint32_t upper = static_cast(src >> 32); - if (upper == 0) { - Move(dst, lower); + if (src == 0) { + pxor(dst, dst); } else { + uint32_t lower = static_cast(src); + uint32_t upper = static_cast(src >> 32); unsigned cnt = base::bits::CountPopulation64(src); unsigned nlz = base::bits::CountLeadingZeros64(src); unsigned ntz = base::bits::CountTrailingZeros64(src); diff --git a/test/test262-es6/test262-es6.status b/test/test262-es6/test262-es6.status index b057963..098d6a2 100644 --- a/test/test262-es6/test262-es6.status +++ b/test/test262-es6/test262-es6.status @@ -34,7 +34,6 @@ 'intl402/12.2.3_b': [FAIL], # TODO(mstarzinger): Optimizing top-level code found some issues. Fix! - 'language/expressions/addition/S9.3_A4.1_T2': [PASS, NO_VARIANTS], 'language/expressions/addition/S11.6.1_A2.2_T2': [PASS, NO_VARIANTS], 'language/expressions/addition/S11.6.1_A3.2_T2.2': [PASS, NO_VARIANTS], 'language/expressions/addition/S11.6.1_A3.2_T2.4': [PASS, NO_VARIANTS], diff --git a/test/test262/test262.status b/test/test262/test262.status index 384ede2..9df6e19 100644 --- a/test/test262/test262.status +++ b/test/test262/test262.status @@ -33,7 +33,6 @@ '15.5.4.9_CE': [['no_i18n', SKIP]], # TODO(mstarzinger): Optimizing top-level code found some issues. Fix! - 'S9.3_A4.1_T2': [PASS, NO_VARIANTS], 'S11.6.1_A2.2_T2': [PASS, NO_VARIANTS], 'S11.6.1_A3.2_T2.2': [PASS, NO_VARIANTS], 'S11.6.1_A3.2_T2.4': [PASS, NO_VARIANTS], -- 2.7.4