Reviewers: Jakob,
Description:
Version 4.1.0.10 (cherry-pick)
Merged eb68d6fe13f13b0697dd2b4ff00df1d7c997669e
Merged 466ed3a34d61dfe108a246e26df986e4986bd4a9
MIPS: remove immediate constraint within CompareAndSwap.
MIPS: Fix 'MIPS: Fix after 'Reland remaining parts of 'Use weak cells in map
checks in polymorphic ICs''.'
[email protected]
BUG=
Please review this at https://codereview.chromium.org/856353002/
Base URL: https://chromium.googlesource.com/v8/[email protected]
Affected files (+8, -6 lines):
M src/base/atomicops_internals_mips64_gcc.h
M src/base/atomicops_internals_mips_gcc.h
M src/ic/mips/ic-compiler-mips.cc
M src/ic/mips64/ic-compiler-mips64.cc
M src/version.cc
Index: src/base/atomicops_internals_mips64_gcc.h
diff --git a/src/base/atomicops_internals_mips64_gcc.h
b/src/base/atomicops_internals_mips64_gcc.h
index
1f629b6ea17a0db31fb5874ceb4c575b47937cea..ccb973c0391ebc1436365df50c6d8defa2262376
100644
--- a/src/base/atomicops_internals_mips64_gcc.h
+++ b/src/base/atomicops_internals_mips64_gcc.h
@@ -59,7 +59,7 @@ inline Atomic32 NoBarrier_CompareAndSwap(volatile
Atomic32* ptr,
"2:\n"
".set pop\n"
: "=&r" (prev), "=m" (*ptr), "=&r" (tmp)
- : "Ir" (old_value), "r" (new_value), "m" (*ptr)
+ : "r" (old_value), "r" (new_value), "m" (*ptr)
: "memory");
return prev;
}
@@ -196,7 +196,7 @@ inline Atomic64 NoBarrier_CompareAndSwap(volatile
Atomic64* ptr,
"2:\n"
".set pop\n"
: "=&r" (prev), "=m" (*ptr), "=&r" (tmp)
- : "Ir" (old_value), "r" (new_value), "m" (*ptr)
+ : "r" (old_value), "r" (new_value), "m" (*ptr)
: "memory");
return prev;
}
Index: src/base/atomicops_internals_mips_gcc.h
diff --git a/src/base/atomicops_internals_mips_gcc.h
b/src/base/atomicops_internals_mips_gcc.h
index
d33b66876b96cfeb574141a2a7ec755aa333bf98..442fdd0f96a1d30a3f824d06e0328fb6433897d3
100644
--- a/src/base/atomicops_internals_mips_gcc.h
+++ b/src/base/atomicops_internals_mips_gcc.h
@@ -36,7 +36,7 @@ inline Atomic32 NoBarrier_CompareAndSwap(volatile
Atomic32* ptr,
"2:\n"
".set pop\n"
: "=&r" (prev), "=&r" (tmp)
- : "Ir" (old_value), "r" (new_value), "r" (ptr)
+ : "r" (old_value), "r" (new_value), "r" (ptr)
: "memory");
return prev;
}
Index: src/ic/mips/ic-compiler-mips.cc
diff --git a/src/ic/mips/ic-compiler-mips.cc
b/src/ic/mips/ic-compiler-mips.cc
index
000e3266c4021787d455624dd7ea10dab248f5e0..6169404c61a059f1208feaef1e21ca876fe4db52
100644
--- a/src/ic/mips/ic-compiler-mips.cc
+++ b/src/ic/mips/ic-compiler-mips.cc
@@ -62,12 +62,13 @@ Handle<Code>
PropertyICCompiler::CompilePolymorphic(TypeHandleList* types,
// Separate compare from branch, to provide path for above
JumpIfSmi().
Handle<WeakCell> cell = Map::WeakCellForMap(map);
__ GetWeakValue(match, cell);
+ __ Subu(match, match, Operand(map_reg));
if (type->Is(HeapType::Number())) {
DCHECK(!number_case.is_unused());
__ bind(&number_case);
}
__ Jump(handlers->at(current), RelocInfo::CODE_TARGET, eq, match,
- Operand(map_reg));
+ Operand(zero_reg));
}
}
DCHECK(number_of_handled_maps != 0);
Index: src/ic/mips64/ic-compiler-mips64.cc
diff --git a/src/ic/mips64/ic-compiler-mips64.cc
b/src/ic/mips64/ic-compiler-mips64.cc
index
1e1880f88d5b584a5be5da653312f6f327c59f2e..7ed4492ee318fa75c7b6f361dae61ebbf85d6aa9
100644
--- a/src/ic/mips64/ic-compiler-mips64.cc
+++ b/src/ic/mips64/ic-compiler-mips64.cc
@@ -62,12 +62,13 @@ Handle<Code>
PropertyICCompiler::CompilePolymorphic(TypeHandleList* types,
// Separate compare from branch, to provide path for above
JumpIfSmi().
Handle<WeakCell> cell = Map::WeakCellForMap(map);
__ GetWeakValue(match, cell);
+ __ Dsubu(match, match, Operand(map_reg));
if (type->Is(HeapType::Number())) {
DCHECK(!number_case.is_unused());
__ bind(&number_case);
}
__ Jump(handlers->at(current), RelocInfo::CODE_TARGET, eq, match,
- Operand(map_reg));
+ Operand(zero_reg));
}
}
DCHECK(number_of_handled_maps != 0);
Index: src/version.cc
diff --git a/src/version.cc b/src/version.cc
index
e8b621a5626e7ed3ff0e15c9594fd3825d7abda0..cd259f8306e0c134660dc686d3414403531c66d3
100644
--- a/src/version.cc
+++ b/src/version.cc
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 4
#define MINOR_VERSION 1
#define BUILD_NUMBER 0
-#define PATCH_LEVEL 9
+#define PATCH_LEVEL 10
// 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/d/optout.