Revision: 15834
Author:   [email protected]
Date:     Tue Jul 23 08:29:32 2013
Log:      Merged r15334 into 3.19 branch.

ia32: Restore missing temp register for LNumberTagU

BUG=v8:2692
[email protected]

Review URL: https://codereview.chromium.org/19863007
http://code.google.com/p/v8/source/detail?r=15834

Modified:
 /branches/3.19/src/ia32/lithium-codegen-ia32.cc
 /branches/3.19/src/ia32/lithium-ia32.cc
 /branches/3.19/src/ia32/lithium-ia32.h
 /branches/3.19/src/version.cc

=======================================
--- /branches/3.19/src/ia32/lithium-codegen-ia32.cc     Wed Jun 19 11:17:45 2013
+++ /branches/3.19/src/ia32/lithium-codegen-ia32.cc     Tue Jul 23 08:29:32 2013
@@ -4911,7 +4911,8 @@
   } else {
     if (CpuFeatures::IsSupported(SSE2)) {
       CpuFeatureScope feature_scope(masm(), SSE2);
-      __ LoadUint32(xmm0, reg, xmm1);
+      __ LoadUint32(xmm0, reg,
+                    ToDoubleRegister(LNumberTagU::cast(instr)->temp()));
     } else {
// There's no fild variant for unsigned values, so zero-extend to a 64-bit
       // int manually.
=======================================
--- /branches/3.19/src/ia32/lithium-ia32.cc     Tue Jun 18 04:54:54 2013
+++ /branches/3.19/src/ia32/lithium-ia32.cc     Tue Jul 23 08:29:32 2013
@@ -2024,7 +2024,9 @@
       if (val->HasRange() && val->range()->IsInSmiRange()) {
         return DefineSameAsFirst(new(zone()) LSmiTag(value));
       } else if (val->CheckFlag(HInstruction::kUint32)) {
-        LNumberTagU* result = new(zone()) LNumberTagU(value);
+        LOperand* temp = CpuFeatures::IsSupported(SSE2) ? FixedTemp(xmm1)
+                                                        : NULL;
+        LNumberTagU* result = new(zone()) LNumberTagU(value, temp);
return AssignEnvironment(AssignPointerMap(DefineSameAsFirst(result)));
       } else {
         LNumberTagI* result = new(zone()) LNumberTagI(value);
=======================================
--- /branches/3.19/src/ia32/lithium-ia32.h      Tue Jun 18 04:54:54 2013
+++ /branches/3.19/src/ia32/lithium-ia32.h      Tue Jul 23 08:29:32 2013
@@ -2048,13 +2048,15 @@
 };


-class LNumberTagU: public LTemplateInstruction<1, 1, 0> {
+class LNumberTagU: public LTemplateInstruction<1, 1, 1> {
  public:
-  explicit LNumberTagU(LOperand* value) {
+  LNumberTagU(LOperand* value, LOperand* temp) {
     inputs_[0] = value;
+    temps_[0] = temp;
   }

   LOperand* value() { return inputs_[0]; }
+  LOperand* temp() { return temps_[0]; }

   DECLARE_CONCRETE_INSTRUCTION(NumberTagU, "number-tag-u")
 };
=======================================
--- /branches/3.19/src/version.cc       Mon Jul 22 17:01:02 2013
+++ /branches/3.19/src/version.cc       Tue Jul 23 08:29:32 2013
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     3
 #define MINOR_VERSION     19
 #define BUILD_NUMBER      18
-#define PATCH_LEVEL       16
+#define PATCH_LEVEL       17
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
 #define IS_CANDIDATE_VERSION 0

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