| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 1214 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1225 | 1225 | 
| 1226 #define READ_SHORT_FIELD(p, offset) \ | 1226 #define READ_SHORT_FIELD(p, offset) \ | 
| 1227   (*reinterpret_cast<uint16_t*>(FIELD_ADDR(p, offset))) | 1227   (*reinterpret_cast<uint16_t*>(FIELD_ADDR(p, offset))) | 
| 1228 | 1228 | 
| 1229 #define WRITE_SHORT_FIELD(p, offset, value) \ | 1229 #define WRITE_SHORT_FIELD(p, offset, value) \ | 
| 1230   (*reinterpret_cast<uint16_t*>(FIELD_ADDR(p, offset)) = value) | 1230   (*reinterpret_cast<uint16_t*>(FIELD_ADDR(p, offset)) = value) | 
| 1231 | 1231 | 
| 1232 #define READ_BYTE_FIELD(p, offset) \ | 1232 #define READ_BYTE_FIELD(p, offset) \ | 
| 1233   (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset))) | 1233   (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset))) | 
| 1234 | 1234 | 
|  | 1235 #define NOBARRIER_READ_BYTE_FIELD(p, offset)               \ | 
|  | 1236   static_cast<byte>(NoBarrier_Load(                        \ | 
|  | 1237       reinterpret_cast<Atomic8*>(FIELD_ADDR(p, offset))) ) | 
|  | 1238 | 
| 1235 #define WRITE_BYTE_FIELD(p, offset, value) \ | 1239 #define WRITE_BYTE_FIELD(p, offset, value) \ | 
| 1236   (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset)) = value) | 1240   (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset)) = value) | 
| 1237 | 1241 | 
|  | 1242 #define NOBARRIER_WRITE_BYTE_FIELD(p, offset, value)                 \ | 
|  | 1243   NoBarrier_Store(reinterpret_cast<Atomic8*>(FIELD_ADDR(p, offset)), \ | 
|  | 1244                   static_cast<Atomic8>(value)); | 
| 1238 | 1245 | 
| 1239 Object** HeapObject::RawField(HeapObject* obj, int byte_offset) { | 1246 Object** HeapObject::RawField(HeapObject* obj, int byte_offset) { | 
| 1240   return &READ_FIELD(obj, byte_offset); | 1247   return &READ_FIELD(obj, byte_offset); | 
| 1241 } | 1248 } | 
| 1242 | 1249 | 
| 1243 | 1250 | 
| 1244 int Smi::value() { | 1251 int Smi::value() { | 
| 1245   return Internals::SmiValue(this); | 1252   return Internals::SmiValue(this); | 
| 1246 } | 1253 } | 
| 1247 | 1254 | 
| (...skipping 2896 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4144 } | 4151 } | 
| 4145 | 4152 | 
| 4146 | 4153 | 
| 4147 void Map::set_visitor_id(int id) { | 4154 void Map::set_visitor_id(int id) { | 
| 4148   ASSERT(0 <= id && id < 256); | 4155   ASSERT(0 <= id && id < 256); | 
| 4149   WRITE_BYTE_FIELD(this, kVisitorIdOffset, static_cast<byte>(id)); | 4156   WRITE_BYTE_FIELD(this, kVisitorIdOffset, static_cast<byte>(id)); | 
| 4150 } | 4157 } | 
| 4151 | 4158 | 
| 4152 | 4159 | 
| 4153 int Map::instance_size() { | 4160 int Map::instance_size() { | 
| 4154   return READ_BYTE_FIELD(this, kInstanceSizeOffset) << kPointerSizeLog2; | 4161   return NOBARRIER_READ_BYTE_FIELD( | 
|  | 4162       this, kInstanceSizeOffset) << kPointerSizeLog2; | 
| 4155 } | 4163 } | 
| 4156 | 4164 | 
| 4157 | 4165 | 
| 4158 int Map::inobject_properties() { | 4166 int Map::inobject_properties() { | 
| 4159   return READ_BYTE_FIELD(this, kInObjectPropertiesOffset); | 4167   return READ_BYTE_FIELD(this, kInObjectPropertiesOffset); | 
| 4160 } | 4168 } | 
| 4161 | 4169 | 
| 4162 | 4170 | 
| 4163 int Map::pre_allocated_property_fields() { | 4171 int Map::pre_allocated_property_fields() { | 
| 4164   return READ_BYTE_FIELD(this, kPreAllocatedPropertyFieldsOffset); | 4172   return READ_BYTE_FIELD(this, kPreAllocatedPropertyFieldsOffset); | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4214   } | 4222   } | 
| 4215   ASSERT(instance_type == CODE_TYPE); | 4223   ASSERT(instance_type == CODE_TYPE); | 
| 4216   return reinterpret_cast<Code*>(this)->CodeSize(); | 4224   return reinterpret_cast<Code*>(this)->CodeSize(); | 
| 4217 } | 4225 } | 
| 4218 | 4226 | 
| 4219 | 4227 | 
| 4220 void Map::set_instance_size(int value) { | 4228 void Map::set_instance_size(int value) { | 
| 4221   ASSERT_EQ(0, value & (kPointerSize - 1)); | 4229   ASSERT_EQ(0, value & (kPointerSize - 1)); | 
| 4222   value >>= kPointerSizeLog2; | 4230   value >>= kPointerSizeLog2; | 
| 4223   ASSERT(0 <= value && value < 256); | 4231   ASSERT(0 <= value && value < 256); | 
| 4224   WRITE_BYTE_FIELD(this, kInstanceSizeOffset, static_cast<byte>(value)); | 4232   NOBARRIER_WRITE_BYTE_FIELD( | 
|  | 4233       this, kInstanceSizeOffset, static_cast<byte>(value)); | 
| 4225 } | 4234 } | 
| 4226 | 4235 | 
| 4227 | 4236 | 
| 4228 void Map::set_inobject_properties(int value) { | 4237 void Map::set_inobject_properties(int value) { | 
| 4229   ASSERT(0 <= value && value < 256); | 4238   ASSERT(0 <= value && value < 256); | 
| 4230   WRITE_BYTE_FIELD(this, kInObjectPropertiesOffset, static_cast<byte>(value)); | 4239   WRITE_BYTE_FIELD(this, kInObjectPropertiesOffset, static_cast<byte>(value)); | 
| 4231 } | 4240 } | 
| 4232 | 4241 | 
| 4233 | 4242 | 
| 4234 void Map::set_pre_allocated_property_fields(int value) { | 4243 void Map::set_pre_allocated_property_fields(int value) { | 
| (...skipping 2833 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7068                    HeapObject::RawField(obj, object_size)); | 7077                    HeapObject::RawField(obj, object_size)); | 
| 7069 } | 7078 } | 
| 7070 | 7079 | 
| 7071 | 7080 | 
| 7072 #undef TYPE_CHECKER | 7081 #undef TYPE_CHECKER | 
| 7073 #undef CAST_ACCESSOR | 7082 #undef CAST_ACCESSOR | 
| 7074 #undef INT_ACCESSORS | 7083 #undef INT_ACCESSORS | 
| 7075 #undef ACCESSORS | 7084 #undef ACCESSORS | 
| 7076 #undef ACCESSORS_TO_SMI | 7085 #undef ACCESSORS_TO_SMI | 
| 7077 #undef SMI_ACCESSORS | 7086 #undef SMI_ACCESSORS | 
|  | 7087 #undef SYNCHRONIZED_SMI_ACCESSORS | 
|  | 7088 #undef NOBARRIER_SMI_ACCESSORS | 
| 7078 #undef BOOL_GETTER | 7089 #undef BOOL_GETTER | 
| 7079 #undef BOOL_ACCESSORS | 7090 #undef BOOL_ACCESSORS | 
| 7080 #undef FIELD_ADDR | 7091 #undef FIELD_ADDR | 
| 7081 #undef READ_FIELD | 7092 #undef READ_FIELD | 
|  | 7093 #undef NOBARRIER_READ_FIELD | 
| 7082 #undef WRITE_FIELD | 7094 #undef WRITE_FIELD | 
|  | 7095 #undef NOBARRIER_WRITE_FIELD | 
| 7083 #undef WRITE_BARRIER | 7096 #undef WRITE_BARRIER | 
| 7084 #undef CONDITIONAL_WRITE_BARRIER | 7097 #undef CONDITIONAL_WRITE_BARRIER | 
| 7085 #undef READ_DOUBLE_FIELD | 7098 #undef READ_DOUBLE_FIELD | 
| 7086 #undef WRITE_DOUBLE_FIELD | 7099 #undef WRITE_DOUBLE_FIELD | 
| 7087 #undef READ_INT_FIELD | 7100 #undef READ_INT_FIELD | 
| 7088 #undef WRITE_INT_FIELD | 7101 #undef WRITE_INT_FIELD | 
| 7089 #undef READ_INTPTR_FIELD | 7102 #undef READ_INTPTR_FIELD | 
| 7090 #undef WRITE_INTPTR_FIELD | 7103 #undef WRITE_INTPTR_FIELD | 
| 7091 #undef READ_UINT32_FIELD | 7104 #undef READ_UINT32_FIELD | 
| 7092 #undef WRITE_UINT32_FIELD | 7105 #undef WRITE_UINT32_FIELD | 
| 7093 #undef READ_SHORT_FIELD | 7106 #undef READ_SHORT_FIELD | 
| 7094 #undef WRITE_SHORT_FIELD | 7107 #undef WRITE_SHORT_FIELD | 
| 7095 #undef READ_BYTE_FIELD | 7108 #undef READ_BYTE_FIELD | 
| 7096 #undef WRITE_BYTE_FIELD | 7109 #undef WRITE_BYTE_FIELD | 
|  | 7110 #undef NOBARRIER_READ_BYTE_FIELD | 
|  | 7111 #undef NOBARRIER_WRITE_BYTE_FIELD | 
| 7097 | 7112 | 
| 7098 } }  // namespace v8::internal | 7113 } }  // namespace v8::internal | 
| 7099 | 7114 | 
| 7100 #endif  // V8_OBJECTS_INL_H_ | 7115 #endif  // V8_OBJECTS_INL_H_ | 
| OLD | NEW | 
|---|