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

Side by Side Diff: src/arm/builtins-arm.cc

Issue 435003: Patch for allowing several V8 instances in process:... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years 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/arm/assembler-arm.cc ('k') | src/arm/disasm-arm.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 2006-2009 the V8 project authors. All rights reserved. 1 // Copyright 2006-2009 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 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 293
294 // Handle construction of an empty array. 294 // Handle construction of an empty array.
295 AllocateEmptyJSArray(masm, 295 AllocateEmptyJSArray(masm,
296 r1, 296 r1,
297 r2, 297 r2,
298 r3, 298 r3,
299 r4, 299 r4,
300 r5, 300 r5,
301 JSArray::kPreallocatedArrayElements, 301 JSArray::kPreallocatedArrayElements,
302 call_generic_code); 302 call_generic_code);
303 __ IncrementCounter(&Counters::array_function_native, 1, r3, r4); 303 __ IncrementCounter(&COUNTER(array_function_native), 1, r3, r4);
304 // Setup return value, remove receiver from stack and return. 304 // Setup return value, remove receiver from stack and return.
305 __ mov(r0, r2); 305 __ mov(r0, r2);
306 __ add(sp, sp, Operand(kPointerSize)); 306 __ add(sp, sp, Operand(kPointerSize));
307 __ Jump(lr); 307 __ Jump(lr);
308 308
309 // Check for one argument. Bail out if argument is not smi or if it is 309 // Check for one argument. Bail out if argument is not smi or if it is
310 // negative. 310 // negative.
311 __ bind(&argc_one_or_more); 311 __ bind(&argc_one_or_more);
312 __ cmp(r0, Operand(1)); 312 __ cmp(r0, Operand(1));
313 __ b(ne, &argc_two_or_more); 313 __ b(ne, &argc_two_or_more);
(...skipping 15 matching lines...) Expand all
329 AllocateJSArray(masm, 329 AllocateJSArray(masm,
330 r1, 330 r1,
331 r2, 331 r2,
332 r3, 332 r3,
333 r4, 333 r4,
334 r5, 334 r5,
335 r6, 335 r6,
336 r7, 336 r7,
337 true, 337 true,
338 call_generic_code); 338 call_generic_code);
339 __ IncrementCounter(&Counters::array_function_native, 1, r2, r4); 339 __ IncrementCounter(&COUNTER(array_function_native), 1, r2, r4);
340 // Setup return value, remove receiver and argument from stack and return. 340 // Setup return value, remove receiver and argument from stack and return.
341 __ mov(r0, r3); 341 __ mov(r0, r3);
342 __ add(sp, sp, Operand(2 * kPointerSize)); 342 __ add(sp, sp, Operand(2 * kPointerSize));
343 __ Jump(lr); 343 __ Jump(lr);
344 344
345 // Handle construction of an array from a list of arguments. 345 // Handle construction of an array from a list of arguments.
346 __ bind(&argc_two_or_more); 346 __ bind(&argc_two_or_more);
347 __ mov(r2, Operand(r0, LSL, kSmiTagSize)); // Convet argc to a smi. 347 __ mov(r2, Operand(r0, LSL, kSmiTagSize)); // Convet argc to a smi.
348 348
349 // r0: argc 349 // r0: argc
350 // r1: constructor 350 // r1: constructor
351 // r2: array_size (smi) 351 // r2: array_size (smi)
352 // sp[0]: last argument 352 // sp[0]: last argument
353 AllocateJSArray(masm, 353 AllocateJSArray(masm,
354 r1, 354 r1,
355 r2, 355 r2,
356 r3, 356 r3,
357 r4, 357 r4,
358 r5, 358 r5,
359 r6, 359 r6,
360 r7, 360 r7,
361 false, 361 false,
362 call_generic_code); 362 call_generic_code);
363 __ IncrementCounter(&Counters::array_function_native, 1, r2, r6); 363 __ IncrementCounter(&COUNTER(array_function_native), 1, r2, r6);
364 364
365 // Fill arguments as array elements. Copy from the top of the stack (last 365 // Fill arguments as array elements. Copy from the top of the stack (last
366 // element) to the array backing store filling it backwards. Note: 366 // element) to the array backing store filling it backwards. Note:
367 // elements_array_end points after the backing store therefore PreIndex is 367 // elements_array_end points after the backing store therefore PreIndex is
368 // used when filling the backing store. 368 // used when filling the backing store.
369 // r0: argc 369 // r0: argc
370 // r3: JSArray 370 // r3: JSArray
371 // r4: elements_array storage start (untagged) 371 // r4: elements_array storage start (untagged)
372 // r5: elements_array_end (untagged) 372 // r5: elements_array_end (untagged)
373 // sp[0]: last argument 373 // sp[0]: last argument
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 // return. 771 // return.
772 __ bind(&exit); 772 __ bind(&exit);
773 // r0: result 773 // r0: result
774 // sp[0]: receiver (newly allocated object) 774 // sp[0]: receiver (newly allocated object)
775 // sp[1]: constructor function 775 // sp[1]: constructor function
776 // sp[2]: number of arguments (smi-tagged) 776 // sp[2]: number of arguments (smi-tagged)
777 __ ldr(r1, MemOperand(sp, 2 * kPointerSize)); 777 __ ldr(r1, MemOperand(sp, 2 * kPointerSize));
778 __ LeaveConstructFrame(); 778 __ LeaveConstructFrame();
779 __ add(sp, sp, Operand(r1, LSL, kPointerSizeLog2 - 1)); 779 __ add(sp, sp, Operand(r1, LSL, kPointerSizeLog2 - 1));
780 __ add(sp, sp, Operand(kPointerSize)); 780 __ add(sp, sp, Operand(kPointerSize));
781 __ IncrementCounter(&Counters::constructed_objects, 1, r1, r2); 781 __ IncrementCounter(&COUNTER(constructed_objects), 1, r1, r2);
782 __ Jump(lr); 782 __ Jump(lr);
783 } 783 }
784 784
785 785
786 static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm, 786 static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
787 bool is_construct) { 787 bool is_construct) {
788 // Called from Generate_JS_Entry 788 // Called from Generate_JS_Entry
789 // r0: code entry 789 // r0: code entry
790 // r1: function 790 // r1: function
791 // r2: receiver 791 // r2: receiver
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
1262 // Dont adapt arguments. 1262 // Dont adapt arguments.
1263 // ------------------------------------------- 1263 // -------------------------------------------
1264 __ bind(&dont_adapt_arguments); 1264 __ bind(&dont_adapt_arguments);
1265 __ Jump(r3); 1265 __ Jump(r3);
1266 } 1266 }
1267 1267
1268 1268
1269 #undef __ 1269 #undef __
1270 1270
1271 } } // namespace v8::internal 1271 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/arm/assembler-arm.cc ('k') | src/arm/disasm-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698