summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-07-25 17:16:09 +0100
committerBen Murdoch <benm@google.com>2011-07-25 17:16:09 +0100
commit18a6f57610d404676fb0db2114fd7ad91e0402b0 (patch)
tree503b2fa5a51d5edd1f510f337df04cf2877bc909 /src
parent0de1e4345105e23da77663351f2019a015ab98b8 (diff)
downloadandroid_external_v8-18a6f57610d404676fb0db2114fd7ad91e0402b0.tar.gz
android_external_v8-18a6f57610d404676fb0db2114fd7ad91e0402b0.tar.bz2
android_external_v8-18a6f57610d404676fb0db2114fd7ad91e0402b0.zip
Merge V8 at r8710: Pick up V8 3.2.10.31
Bug: 5052287 Change-Id: Ib12d1d74d4413ff281fb46ba306d103b5106ee1a
Diffstat (limited to 'src')
-rw-r--r--src/arm/lithium-codegen-arm.cc8
-rw-r--r--src/heap-inl.h9
-rw-r--r--src/ia32/lithium-codegen-ia32.cc1
-rw-r--r--src/version.cc2
-rw-r--r--src/x64/lithium-codegen-x64.cc1
5 files changed, 13 insertions, 8 deletions
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
index 80055708..06f3a4eb 100644
--- a/src/arm/lithium-codegen-arm.cc
+++ b/src/arm/lithium-codegen-arm.cc
@@ -497,6 +497,13 @@ void LCodeGen::CallCodeGeneric(Handle<Code> code,
RecordPosition(pointers->position());
__ Call(code, mode);
RegisterLazyDeoptimization(instr, safepoint_mode);
+
+ // Signal that we don't inline smi code before these stubs in the
+ // optimizing code generator.
+ if (code->kind() == Code::TYPE_RECORDING_BINARY_OP_IC ||
+ code->kind() == Code::COMPARE_IC) {
+ __ nop();
+ }
}
@@ -1368,6 +1375,7 @@ void LCodeGen::DoArithmeticT(LArithmeticT* instr) {
TypeRecordingBinaryOpStub stub(instr->op(), NO_OVERWRITE);
CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
+ __ nop(); // Signals no inlined code.
}
diff --git a/src/heap-inl.h b/src/heap-inl.h
index 99737ed9..296cb05c 100644
--- a/src/heap-inl.h
+++ b/src/heap-inl.h
@@ -367,11 +367,7 @@ void Heap::MoveBlock(Address dst, Address src, int byte_size) {
int size_in_words = byte_size / kPointerSize;
- if ((dst < src) || (dst >= (src + size_in_words))) {
- ASSERT((dst >= (src + size_in_words)) ||
- ((OffsetFrom(reinterpret_cast<Address>(src)) -
- OffsetFrom(reinterpret_cast<Address>(dst))) >= kPointerSize));
-
+ if ((dst < src) || (dst >= (src + byte_size))) {
Object** src_slot = reinterpret_cast<Object**>(src);
Object** dst_slot = reinterpret_cast<Object**>(dst);
Object** end_slot = src_slot + size_in_words;
@@ -389,8 +385,7 @@ void Heap::MoveBlockToOldSpaceAndUpdateRegionMarks(Address dst,
Address src,
int byte_size) {
ASSERT(IsAligned(byte_size, kPointerSize));
- ASSERT((dst >= (src + byte_size)) ||
- ((OffsetFrom(src) - OffsetFrom(dst)) >= kPointerSize));
+ ASSERT((dst < src) || (dst >= (src + byte_size)));
CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size);
}
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc
index 73565dc3..8bcce338 100644
--- a/src/ia32/lithium-codegen-ia32.cc
+++ b/src/ia32/lithium-codegen-ia32.cc
@@ -1250,6 +1250,7 @@ void LCodeGen::DoArithmeticT(LArithmeticT* instr) {
TypeRecordingBinaryOpStub stub(instr->op(), NO_OVERWRITE);
CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr, RESTORE_CONTEXT);
+ __ nop(); // Signals no inlined code.
}
diff --git a/src/version.cc b/src/version.cc
index 822abfe7..7e18e6d4 100644
--- a/src/version.cc
+++ b/src/version.cc
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 3
#define MINOR_VERSION 2
#define BUILD_NUMBER 10
-#define PATCH_LEVEL 28
+#define PATCH_LEVEL 31
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
#define IS_CANDIDATE_VERSION 0
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
index a178d034..822295e2 100644
--- a/src/x64/lithium-codegen-x64.cc
+++ b/src/x64/lithium-codegen-x64.cc
@@ -1246,6 +1246,7 @@ void LCodeGen::DoArithmeticT(LArithmeticT* instr) {
TypeRecordingBinaryOpStub stub(instr->op(), NO_OVERWRITE);
CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
+ __ nop(); // Signals no inlined code.
}