Reviewers: ulan,
Description:
Merged r13420, r13427 into 3.15 branch.
MIPS: Fix if condition in DoTransitionElementsKind.
MIPS: Fix wrong asserts in SeqStringSetCharGenerator.
[email protected]
Please review this at https://chromiumcodereview.appspot.com/12049087/
SVN Base: https://v8.googlecode.com/svn/branches/3.15
Affected files:
M src/mips/codegen-mips.cc
M src/mips/lithium-codegen-mips.cc
M src/version.cc
Index: src/mips/codegen-mips.cc
diff --git a/src/mips/codegen-mips.cc b/src/mips/codegen-mips.cc
index
1da808963564079376ceb6c31060476425286ed9..db313e10ee7c2769bc7bd6603aa89e364cbd5493
100644
--- a/src/mips/codegen-mips.cc
+++ b/src/mips/codegen-mips.cc
@@ -529,9 +529,9 @@ void
SeqStringSetCharGenerator::Generate(MacroAssembler* masm,
__ Check(eq, "Non-smi value", at, Operand(zero_reg));
__ lw(at, FieldMemOperand(string, String::kLengthOffset));
- __ Check(lt, "Index is too large", at, Operand(index));
+ __ Check(lt, "Index is too large", index, Operand(at));
- __ Check(ge, "Index is negative", index, Operand(Smi::FromInt(0)));
+ __ Check(ge, "Index is negative", index, Operand(zero_reg));
__ lw(at, FieldMemOperand(string, HeapObject::kMapOffset));
__ lbu(at, FieldMemOperand(at, Map::kInstanceTypeOffset));
@@ -539,9 +539,9 @@ void
SeqStringSetCharGenerator::Generate(MacroAssembler* masm,
__ And(at, at, Operand(kStringRepresentationMask |
kStringEncodingMask));
static const uint32_t one_byte_seq_type = kSeqStringTag |
kOneByteStringTag;
static const uint32_t two_byte_seq_type = kSeqStringTag |
kTwoByteStringTag;
- __ Check(eq, "Unexpected string type", at,
- Operand(encoding == String::ONE_BYTE_ENCODING
- ? one_byte_seq_type : two_byte_seq_type));
+ __ Subu(at, at, Operand(encoding == String::ONE_BYTE_ENCODING
+ ? one_byte_seq_type : two_byte_seq_type));
+ __ Check(eq, "Unexpected string type", at, Operand(zero_reg));
}
__ Addu(at,
Index: src/mips/lithium-codegen-mips.cc
diff --git a/src/mips/lithium-codegen-mips.cc
b/src/mips/lithium-codegen-mips.cc
index
fd7af9f0f50a9f2f69a24097e875f7015ccf780a..cc589e0b30dd2a1f750880c7eb9f7ce72b34bd88
100644
--- a/src/mips/lithium-codegen-mips.cc
+++ b/src/mips/lithium-codegen-mips.cc
@@ -4016,7 +4016,7 @@ void
LCodeGen::DoTransitionElementsKind(LTransitionElementsKind* instr) {
__ Branch(¬_applicable, ne, scratch, Operand(from_map));
__ li(new_map_reg, Operand(to_map));
- if (IsFastSmiElementsKind(from_kind) &&
IsFastObjectElementsKind(to_kind)) {
+ if (IsSimpleMapChangeTransition(from_kind, to_kind)) {
__ sw(new_map_reg, FieldMemOperand(object_reg,
HeapObject::kMapOffset));
// Write barrier.
__ RecordWriteField(object_reg, HeapObject::kMapOffset, new_map_reg,
Index: src/version.cc
diff --git a/src/version.cc b/src/version.cc
index
e42e9da1e27d421bd22bbb478c566b88a8440287..11d822516841b065835f1af23b9fb618e1fa7dca
100644
--- a/src/version.cc
+++ b/src/version.cc
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 3
#define MINOR_VERSION 15
#define BUILD_NUMBER 11
-#define PATCH_LEVEL 11
+#define PATCH_LEVEL 12
// 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