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

Side by Side Diff: src/ia32/macro-assembler-ia32.h

Issue 6148007: Speed up FastAsciiArrayJoin on ia32 by improving hand-written assembly code. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 11 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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 // initialized. 379 // initialized.
380 void AllocateConsString(Register result, 380 void AllocateConsString(Register result,
381 Register scratch1, 381 Register scratch1,
382 Register scratch2, 382 Register scratch2,
383 Label* gc_required); 383 Label* gc_required);
384 void AllocateAsciiConsString(Register result, 384 void AllocateAsciiConsString(Register result,
385 Register scratch1, 385 Register scratch1,
386 Register scratch2, 386 Register scratch2,
387 Label* gc_required); 387 Label* gc_required);
388 388
389 // All registers must be distinct. Only current_string needs valid contents 389 // Copy memory, byte-by-byte, from source to destination. Not optimized for
390 // on entry. All registers may be invalid on exit. result_operand is 390 // long or aligned copies.
391 // unchanged, padding_chars is updated correctly. 391 // The contents of index and scratch are destroyed.
392 // The top of new space must contain a sequential ascii string with 392 void CopyBytes(Register source,
393 // padding_chars bytes free in its top word. The sequential ascii string 393 Register destination,
394 // current_string is concatenated to it, allocating the necessary amount 394 Register length,
395 // of new memory. 395 Register scratch);
396 void AppendStringToTopOfNewSpace(
397 Register current_string, // Tagged pointer to string to copy.
398 Register current_string_length,
399 Register result_pos,
400 Register scratch,
401 Register new_padding_chars,
402 Operand operand_result,
403 Operand operand_padding_chars,
404 Label* bailout);
405 396
406 // --------------------------------------------------------------------------- 397 // ---------------------------------------------------------------------------
407 // Support functions. 398 // Support functions.
408 399
409 // Check if result is zero and op is negative. 400 // Check if result is zero and op is negative.
410 void NegativeZeroTest(Register result, Register op, Label* then_label); 401 void NegativeZeroTest(Register result, Register op, Label* then_label);
411 402
412 // Check if result is zero and op is negative in code using jump targets. 403 // Check if result is zero and op is negative in code using jump targets.
413 void NegativeZeroTest(CodeGenerator* cgen, 404 void NegativeZeroTest(CodeGenerator* cgen,
414 Register result, 405 Register result,
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
765 } \ 756 } \
766 masm-> 757 masm->
767 #else 758 #else
768 #define ACCESS_MASM(masm) masm-> 759 #define ACCESS_MASM(masm) masm->
769 #endif 760 #endif
770 761
771 762
772 } } // namespace v8::internal 763 } } // namespace v8::internal
773 764
774 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ 765 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698