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

Side by Side Diff: src/arm/stub-cache-arm.cc

Issue 12440041: Generalizing remaining Allocate functions in the macro assemblers used in pretenuring. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 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 unified diff | Download patch | Annotate | Revision Log
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 2964 matching lines...) Expand 10 before | Expand all | Expand 10 after
2975 // r1: constructor function 2975 // r1: constructor function
2976 // r2: initial map 2976 // r2: initial map
2977 // r7: undefined 2977 // r7: undefined
2978 ASSERT(function->has_initial_map()); 2978 ASSERT(function->has_initial_map());
2979 __ ldrb(r3, FieldMemOperand(r2, Map::kInstanceSizeOffset)); 2979 __ ldrb(r3, FieldMemOperand(r2, Map::kInstanceSizeOffset));
2980 #ifdef DEBUG 2980 #ifdef DEBUG
2981 int instance_size = function->initial_map()->instance_size(); 2981 int instance_size = function->initial_map()->instance_size();
2982 __ cmp(r3, Operand(instance_size >> kPointerSizeLog2)); 2982 __ cmp(r3, Operand(instance_size >> kPointerSizeLog2));
2983 __ Check(eq, "Instance size of initial map changed."); 2983 __ Check(eq, "Instance size of initial map changed.");
2984 #endif 2984 #endif
2985 __ AllocateInNewSpace(r3, r4, r5, r6, &generic_stub_call, SIZE_IN_WORDS); 2985 __ Allocate(r3, r4, r5, r6, &generic_stub_call, SIZE_IN_WORDS);
2986 2986
2987 // Allocated the JSObject, now initialize the fields. Map is set to initial 2987 // Allocated the JSObject, now initialize the fields. Map is set to initial
2988 // map and properties and elements are set to empty fixed array. 2988 // map and properties and elements are set to empty fixed array.
2989 // r0: argc 2989 // r0: argc
2990 // r1: constructor function 2990 // r1: constructor function
2991 // r2: initial map 2991 // r2: initial map
2992 // r3: object size (in words) 2992 // r3: object size (in words)
2993 // r4: JSObject (not tagged) 2993 // r4: JSObject (not tagged)
2994 // r7: undefined 2994 // r7: undefined
2995 __ LoadRoot(r6, Heap::kEmptyFixedArrayRootIndex); 2995 __ LoadRoot(r6, Heap::kEmptyFixedArrayRootIndex);
(...skipping 846 matching lines...) Expand 10 before | Expand all | Expand 10 after
3842 TailCallBuiltin(masm, Builtins::kKeyedStoreIC_Slow); 3842 TailCallBuiltin(masm, Builtins::kKeyedStoreIC_Slow);
3843 } 3843 }
3844 } 3844 }
3845 3845
3846 3846
3847 #undef __ 3847 #undef __
3848 3848
3849 } } // namespace v8::internal 3849 } } // namespace v8::internal
3850 3850
3851 #endif // V8_TARGET_ARCH_ARM 3851 #endif // V8_TARGET_ARCH_ARM
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698