Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(547)

Unified Diff: src/objects.cc

Issue 422063005: Contribution of PowerPC port. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index 99113f6fcfe08f43907cbb5d284931592af230c1..3729118c38a975df6fa2e98bff74563b89eb9242 100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -782,6 +782,10 @@ bool JSObject::IsDirty() {
}
+#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ <= 4)
+// Work around bad optimization by GCC 4.4.6 on PPC Linux
+#pragma GCC optimize "O0"
danno 2014/07/29 13:24:08 Please use this style of guard with the GCC detect
+#endif
MaybeHandle<Object> Object::GetElementWithReceiver(Isolate* isolate,
Handle<Object> object,
Handle<Object> receiver,
@@ -836,6 +840,9 @@ MaybeHandle<Object> Object::GetElementWithReceiver(Isolate* isolate,
return isolate->factory()->undefined_value();
}
+#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ <= 4)
+#pragma GCC reset_options
+#endif
Map* Object::GetRootMap(Isolate* isolate) {
@@ -9671,6 +9678,7 @@ void ConstantPoolArray::ConstantPoolIterateBody(ObjectVisitor* v) {
// Unfortunately the serializer relies on pointers within an object being
// visited in-order, so we have to iterate both the code and heap pointers in
// the small section before doing so in the extended section.
+ WeakObjectState state = get_weak_object_state();
for (int s = 0; s <= final_section(); ++s) {
LayoutSection section = static_cast<LayoutSection>(s);
ConstantPoolArray::Iterator code_iter(this, ConstantPoolArray::CODE_PTR,
@@ -9683,7 +9691,8 @@ void ConstantPoolArray::ConstantPoolIterateBody(ObjectVisitor* v) {
ConstantPoolArray::Iterator heap_iter(this, ConstantPoolArray::HEAP_PTR,
section);
while (!heap_iter.is_finished()) {
- v->VisitPointer(RawFieldOfElementAt(heap_iter.next_index()));
+ v->VisitConstantPoolEmbeddedPointer(
+ RawFieldOfElementAt(heap_iter.next_index()), state);
}
}
}
@@ -11529,6 +11538,15 @@ void Code::Disassemble(const char* name, OStream& os) { // NOLINT
it.rinfo()->Print(GetIsolate(), os);
}
os << "\n";
+
+ if (FLAG_enable_ool_constant_pool) {
+ ConstantPoolArray *pool = constant_pool();
+ if (pool->length()) {
+ os << "Constant Pool\n";
+ pool->Print(os);
+ os << "\n";
+ }
+ }
}
#endif // ENABLE_DISASSEMBLER

Powered by Google App Engine
This is Rietveld 408576698