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

Unified Diff: src/objects-inl.h

Issue 194793002: [v8-dev] ARM: safepoints frame optimization (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 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
« src/arm/assembler-arm.h ('K') | « src/objects.h ('k') | src/v8globals.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/objects-inl.h
diff --git a/src/objects-inl.h b/src/objects-inl.h
index ec2ffdb5373703bc3611c3cc7fa39798a29556fe..a62334a7943a9573f59773cff5cc6f50eda66ad7 100644
--- a/src/objects-inl.h
+++ b/src/objects-inl.h
@@ -99,6 +99,12 @@ PropertyDetails PropertyDetails::AsDeleted() const {
void holder::set_##name(int value) { WRITE_INT_FIELD(this, offset, value); }
+#define REGLIST_ACCESSORS(holder, name, offset) \
+ RegList holder::name() { return READ_REGLIST_FIELD(this, offset); } \
+ void holder::set_##name(RegList value) \
+ { WRITE_REGLIST_FIELD(this, offset, value); }
+
+
#define ACCESSORS(holder, name, type, offset) \
type* holder::name() { return type::cast(READ_FIELD(this, offset)); } \
void holder::set_##name(type* value, WriteBarrierMode mode) { \
@@ -1184,6 +1190,12 @@ MaybeObject* Object::GetProperty(Name* key, PropertyAttributes* attributes) {
#define WRITE_BYTE_FIELD(p, offset, value) \
(*reinterpret_cast<byte*>(FIELD_ADDR(p, offset)) = value)
+#define READ_REGLIST_FIELD(p, offset) \
+ (*reinterpret_cast<RegList*>(FIELD_ADDR(p, offset)))
+
+#define WRITE_REGLIST_FIELD(p, offset, value) \
+ (*reinterpret_cast<RegList*>(FIELD_ADDR(p, offset)) = value)
+
Object** HeapObject::RawField(HeapObject* obj, int byte_offset) {
return &READ_FIELD(obj, byte_offset);
@@ -5694,6 +5706,10 @@ JSMessageObject* JSMessageObject::cast(Object* obj) {
INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset)
INT_ACCESSORS(Code, prologue_offset, kPrologueOffset)
+#if V8_TARGET_ARCH_ARM
+REGLIST_ACCESSORS(Code, registers_mask, kCoresMaskOffset)
+REGLIST_ACCESSORS(Code, double_registers_mask, kDoublesMaskOffset)
+#endif
ACCESSORS(Code, relocation_info, ByteArray, kRelocationInfoOffset)
ACCESSORS(Code, handler_table, FixedArray, kHandlerTableOffset)
ACCESSORS(Code, deoptimization_data, FixedArray, kDeoptimizationDataOffset)
@@ -6746,6 +6762,7 @@ void FlexibleBodyDescriptor<start_offset>::IterateBody(HeapObject* obj,
#undef TYPE_CHECKER
#undef CAST_ACCESSOR
#undef INT_ACCESSORS
+#undef REGLIST_ACCESSORS
#undef ACCESSORS
#undef ACCESSORS_TO_SMI
#undef SMI_ACCESSORS
@@ -6768,6 +6785,8 @@ void FlexibleBodyDescriptor<start_offset>::IterateBody(HeapObject* obj,
#undef WRITE_SHORT_FIELD
#undef READ_BYTE_FIELD
#undef WRITE_BYTE_FIELD
+#undef READ_REGLIST_FIELD
+#undef WRITE_REGLIST_FIELD
} } // namespace v8::internal
« src/arm/assembler-arm.h ('K') | « src/objects.h ('k') | src/v8globals.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698