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

Side by Side Diff: src/objects.h

Issue 151603008: A64: Synchronize with r16599. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/mips/lithium-mips.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 1216 matching lines...) Expand 10 before | Expand all | Expand 10 after
1227 V(kNoCasesLeft, "no cases left") \ 1227 V(kNoCasesLeft, "no cases left") \
1228 V(kNoEmptyArraysHereInEmitFastAsciiArrayJoin, \ 1228 V(kNoEmptyArraysHereInEmitFastAsciiArrayJoin, \
1229 "No empty arrays here in EmitFastAsciiArrayJoin") \ 1229 "No empty arrays here in EmitFastAsciiArrayJoin") \
1230 V(kNonInitializerAssignmentToConst, \ 1230 V(kNonInitializerAssignmentToConst, \
1231 "non-initializer assignment to const") \ 1231 "non-initializer assignment to const") \
1232 V(kNonSmiIndex, "Non-smi index") \ 1232 V(kNonSmiIndex, "Non-smi index") \
1233 V(kNonSmiKeyInArrayLiteral, "Non-smi key in array literal") \ 1233 V(kNonSmiKeyInArrayLiteral, "Non-smi key in array literal") \
1234 V(kNonSmiValue, "Non-smi value") \ 1234 V(kNonSmiValue, "Non-smi value") \
1235 V(kNotEnoughVirtualRegistersForValues, \ 1235 V(kNotEnoughVirtualRegistersForValues, \
1236 "not enough virtual registers for values") \ 1236 "not enough virtual registers for values") \
1237 V(kNotEnoughSpillSlotsForOsr, \
1238 "not enough spill slots for OSR") \
1237 V(kNotEnoughVirtualRegistersRegalloc, \ 1239 V(kNotEnoughVirtualRegistersRegalloc, \
1238 "not enough virtual registers (regalloc)") \ 1240 "not enough virtual registers (regalloc)") \
1239 V(kObjectFoundInSmiOnlyArray, "object found in smi-only array") \ 1241 V(kObjectFoundInSmiOnlyArray, "object found in smi-only array") \
1240 V(kObjectLiteralWithComplexProperty, \ 1242 V(kObjectLiteralWithComplexProperty, \
1241 "Object literal with complex property") \ 1243 "Object literal with complex property") \
1242 V(kOddballInStringTableIsNotUndefinedOrTheHole, \ 1244 V(kOddballInStringTableIsNotUndefinedOrTheHole, \
1243 "oddball in string table is not undefined or the hole") \ 1245 "oddball in string table is not undefined or the hole") \
1244 V(kOffsetOutOfRange, "offset out of range") \ 1246 V(kOffsetOutOfRange, "offset out of range") \
1245 V(kOperandIsASmiAndNotAName, "Operand is a smi and not a name") \ 1247 V(kOperandIsASmiAndNotAName, "Operand is a smi and not a name") \
1246 V(kOperandIsASmiAndNotAString, "Operand is a smi and not a string") \ 1248 V(kOperandIsASmiAndNotAString, "Operand is a smi and not a string") \
(...skipping 1006 matching lines...) Expand 10 before | Expand all | Expand 10 after
2253 static Handle<Object> SetNormalizedProperty(Handle<JSObject> object, 2255 static Handle<Object> SetNormalizedProperty(Handle<JSObject> object,
2254 Handle<Name> key, 2256 Handle<Name> key,
2255 Handle<Object> value, 2257 Handle<Object> value,
2256 PropertyDetails details); 2258 PropertyDetails details);
2257 2259
2258 MUST_USE_RESULT MaybeObject* SetNormalizedProperty(Name* name, 2260 MUST_USE_RESULT MaybeObject* SetNormalizedProperty(Name* name,
2259 Object* value, 2261 Object* value,
2260 PropertyDetails details); 2262 PropertyDetails details);
2261 2263
2262 static void OptimizeAsPrototype(Handle<JSObject> object); 2264 static void OptimizeAsPrototype(Handle<JSObject> object);
2263 MUST_USE_RESULT MaybeObject* OptimizeAsPrototype();
2264 2265
2265 // Retrieve interceptors. 2266 // Retrieve interceptors.
2266 InterceptorInfo* GetNamedInterceptor(); 2267 InterceptorInfo* GetNamedInterceptor();
2267 InterceptorInfo* GetIndexedInterceptor(); 2268 InterceptorInfo* GetIndexedInterceptor();
2268 2269
2269 // Used from JSReceiver. 2270 // Used from JSReceiver.
2270 PropertyAttributes GetPropertyAttributePostInterceptor(JSObject* receiver, 2271 PropertyAttributes GetPropertyAttributePostInterceptor(JSObject* receiver,
2271 Name* name, 2272 Name* name,
2272 bool continue_search); 2273 bool continue_search);
2273 PropertyAttributes GetPropertyAttributeWithInterceptor(JSObject* receiver, 2274 PropertyAttributes GetPropertyAttributeWithInterceptor(JSObject* receiver,
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
2347 Handle<Name> key); 2348 Handle<Name> key);
2348 // Returns true if the object has a property with the hidden string as name. 2349 // Returns true if the object has a property with the hidden string as name.
2349 bool HasHiddenProperties(); 2350 bool HasHiddenProperties();
2350 2351
2351 static int GetIdentityHash(Handle<JSObject> object); 2352 static int GetIdentityHash(Handle<JSObject> object);
2352 static void SetIdentityHash(Handle<JSObject> object, Smi* hash); 2353 static void SetIdentityHash(Handle<JSObject> object, Smi* hash);
2353 2354
2354 inline void ValidateElements(); 2355 inline void ValidateElements();
2355 2356
2356 // Makes sure that this object can contain HeapObject as elements. 2357 // Makes sure that this object can contain HeapObject as elements.
2357 MUST_USE_RESULT inline MaybeObject* EnsureCanContainHeapObjectElements(); 2358 static inline void EnsureCanContainHeapObjectElements(Handle<JSObject> obj);
2358 2359
2359 // Makes sure that this object can contain the specified elements. 2360 // Makes sure that this object can contain the specified elements.
2360 MUST_USE_RESULT inline MaybeObject* EnsureCanContainElements( 2361 MUST_USE_RESULT inline MaybeObject* EnsureCanContainElements(
2361 Object** elements, 2362 Object** elements,
2362 uint32_t count, 2363 uint32_t count,
2363 EnsureElementsMode mode); 2364 EnsureElementsMode mode);
2364 MUST_USE_RESULT inline MaybeObject* EnsureCanContainElements( 2365 MUST_USE_RESULT inline MaybeObject* EnsureCanContainElements(
2365 FixedArrayBase* elements, 2366 FixedArrayBase* elements,
2366 uint32_t length, 2367 uint32_t length,
2367 EnsureElementsMode mode); 2368 EnsureElementsMode mode);
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
2602 // SeededNumberDictionary dictionary. Returns the backing after conversion. 2603 // SeededNumberDictionary dictionary. Returns the backing after conversion.
2603 static Handle<SeededNumberDictionary> NormalizeElements( 2604 static Handle<SeededNumberDictionary> NormalizeElements(
2604 Handle<JSObject> object); 2605 Handle<JSObject> object);
2605 2606
2606 MUST_USE_RESULT MaybeObject* NormalizeElements(); 2607 MUST_USE_RESULT MaybeObject* NormalizeElements();
2607 2608
2608 static void UpdateMapCodeCache(Handle<JSObject> object, 2609 static void UpdateMapCodeCache(Handle<JSObject> object,
2609 Handle<Name> name, 2610 Handle<Name> name,
2610 Handle<Code> code); 2611 Handle<Code> code);
2611 2612
2612 MUST_USE_RESULT MaybeObject* UpdateMapCodeCache(Name* name, Code* code);
2613
2614 // Transform slow named properties to fast variants. 2613 // Transform slow named properties to fast variants.
2615 // Returns failure if allocation failed. 2614 // Returns failure if allocation failed.
2616 static void TransformToFastProperties(Handle<JSObject> object, 2615 static void TransformToFastProperties(Handle<JSObject> object,
2617 int unused_property_fields); 2616 int unused_property_fields);
2618 2617
2619 MUST_USE_RESULT MaybeObject* TransformToFastProperties( 2618 MUST_USE_RESULT MaybeObject* TransformToFastProperties(
2620 int unused_property_fields); 2619 int unused_property_fields);
2621 2620
2622 // Access fast-case object properties at index. 2621 // Access fast-case object properties at index.
2623 MUST_USE_RESULT inline MaybeObject* FastPropertyAt( 2622 MUST_USE_RESULT inline MaybeObject* FastPropertyAt(
(...skipping 3203 matching lines...) Expand 10 before | Expand all | Expand 10 after
5827 DescriptorArray* descriptors, 5826 DescriptorArray* descriptors,
5828 Descriptor* descriptor, 5827 Descriptor* descriptor,
5829 int index, 5828 int index,
5830 TransitionFlag flag); 5829 TransitionFlag flag);
5831 MUST_USE_RESULT MaybeObject* AsElementsKind(ElementsKind kind); 5830 MUST_USE_RESULT MaybeObject* AsElementsKind(ElementsKind kind);
5832 5831
5833 MUST_USE_RESULT MaybeObject* CopyAsElementsKind(ElementsKind kind, 5832 MUST_USE_RESULT MaybeObject* CopyAsElementsKind(ElementsKind kind,
5834 TransitionFlag flag); 5833 TransitionFlag flag);
5835 MUST_USE_RESULT MaybeObject* CopyForObserved(); 5834 MUST_USE_RESULT MaybeObject* CopyForObserved();
5836 5835
5836 static Handle<Map> CopyNormalized(Handle<Map> map,
5837 PropertyNormalizationMode mode,
5838 NormalizedMapSharingMode sharing);
5837 MUST_USE_RESULT MaybeObject* CopyNormalized(PropertyNormalizationMode mode, 5839 MUST_USE_RESULT MaybeObject* CopyNormalized(PropertyNormalizationMode mode,
5838 NormalizedMapSharingMode sharing); 5840 NormalizedMapSharingMode sharing);
5839 5841
5840 inline void AppendDescriptor(Descriptor* desc, 5842 inline void AppendDescriptor(Descriptor* desc,
5841 const DescriptorArray::WhitenessWitness&); 5843 const DescriptorArray::WhitenessWitness&);
5842 5844
5843 // Returns a copy of the map, with all transitions dropped from the 5845 // Returns a copy of the map, with all transitions dropped from the
5844 // instance descriptors. 5846 // instance descriptors.
5845 static Handle<Map> Copy(Handle<Map> map); 5847 static Handle<Map> Copy(Handle<Map> map);
5846 MUST_USE_RESULT MaybeObject* Copy(); 5848 MUST_USE_RESULT MaybeObject* Copy();
(...skipping 1162 matching lines...) Expand 10 before | Expand all | Expand 10 after
7009 void MarkForConcurrentRecompilation(); 7011 void MarkForConcurrentRecompilation();
7010 void MarkForInstallingRecompiledCode(); 7012 void MarkForInstallingRecompiledCode();
7011 void MarkInRecompileQueue(); 7013 void MarkInRecompileQueue();
7012 7014
7013 // Helpers to compile this function. Returns true on success, false on 7015 // Helpers to compile this function. Returns true on success, false on
7014 // failure (e.g., stack overflow during compilation). 7016 // failure (e.g., stack overflow during compilation).
7015 static bool EnsureCompiled(Handle<JSFunction> function, 7017 static bool EnsureCompiled(Handle<JSFunction> function,
7016 ClearExceptionFlag flag); 7018 ClearExceptionFlag flag);
7017 static bool CompileLazy(Handle<JSFunction> function, 7019 static bool CompileLazy(Handle<JSFunction> function,
7018 ClearExceptionFlag flag); 7020 ClearExceptionFlag flag);
7021 static Handle<Code> CompileOsr(Handle<JSFunction> function,
7022 BailoutId osr_ast_id,
7023 ClearExceptionFlag flag);
7019 static bool CompileOptimized(Handle<JSFunction> function, 7024 static bool CompileOptimized(Handle<JSFunction> function,
7020 BailoutId osr_ast_id,
7021 ClearExceptionFlag flag); 7025 ClearExceptionFlag flag);
7022 7026
7023 // Tells whether or not the function is already marked for lazy 7027 // Tells whether or not the function is already marked for lazy
7024 // recompilation. 7028 // recompilation.
7025 inline bool IsMarkedForLazyRecompilation(); 7029 inline bool IsMarkedForLazyRecompilation();
7026 inline bool IsMarkedForConcurrentRecompilation(); 7030 inline bool IsMarkedForConcurrentRecompilation();
7027 inline bool IsMarkedForInstallingRecompiledCode(); 7031 inline bool IsMarkedForInstallingRecompiledCode();
7028 7032
7029 // Tells whether or not the function is on the concurrent recompilation queue. 7033 // Tells whether or not the function is on the concurrent recompilation queue.
7030 inline bool IsInRecompileQueue(); 7034 inline bool IsInRecompileQueue();
(...skipping 3219 matching lines...) Expand 10 before | Expand all | Expand 10 after
10250 } else { 10254 } else {
10251 value &= ~(1 << bit_position); 10255 value &= ~(1 << bit_position);
10252 } 10256 }
10253 return value; 10257 return value;
10254 } 10258 }
10255 }; 10259 };
10256 10260
10257 } } // namespace v8::internal 10261 } } // namespace v8::internal
10258 10262
10259 #endif // V8_OBJECTS_H_ 10263 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mips/lithium-mips.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698