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

Side by Side Diff: src/regexp-macro-assembler-irregexp.cc

Issue 165443: X64: Implement RegExp natively. (Closed)
Patch Set: Addressed review comments. Created 11 years, 4 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
OLDNEW
1 // Copyright 2008-2009 the V8 project authors. All rights reserved. 1 // Copyright 2008-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 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 int reg2, 368 int reg2,
369 Label* on_not_equal) { 369 Label* on_not_equal) {
370 ASSERT(reg1 >= 0); 370 ASSERT(reg1 >= 0);
371 ASSERT(reg1 <= kMaxRegister); 371 ASSERT(reg1 <= kMaxRegister);
372 Emit(BC_CHECK_NOT_REGS_EQUAL, reg1); 372 Emit(BC_CHECK_NOT_REGS_EQUAL, reg1);
373 Emit32(reg2); 373 Emit32(reg2);
374 EmitOrLink(on_not_equal); 374 EmitOrLink(on_not_equal);
375 } 375 }
376 376
377 377
378 void RegExpMacroAssemblerIrregexp::CheckBitmap(uc16 start,
379 Label* bitmap,
380 Label* on_zero) {
381 UNIMPLEMENTED();
382 }
383
384
385 void RegExpMacroAssemblerIrregexp::DispatchHalfNibbleMap(
386 uc16 start,
387 Label* half_nibble_map,
388 const Vector<Label*>& table) {
389 UNIMPLEMENTED();
390 }
391
392
393 void RegExpMacroAssemblerIrregexp::DispatchByteMap(
394 uc16 start,
395 Label* byte_map,
396 const Vector<Label*>& table) {
397 UNIMPLEMENTED();
398 }
399
400
401 void RegExpMacroAssemblerIrregexp::DispatchHighByteMap(
402 byte start,
403 Label* byte_map,
404 const Vector<Label*>& table) {
405 UNIMPLEMENTED();
406 }
407
408
409 void RegExpMacroAssemblerIrregexp::CheckCharacters( 378 void RegExpMacroAssemblerIrregexp::CheckCharacters(
410 Vector<const uc16> str, 379 Vector<const uc16> str,
411 int cp_offset, 380 int cp_offset,
412 Label* on_failure, 381 Label* on_failure,
413 bool check_end_of_string) { 382 bool check_end_of_string) {
414 ASSERT(cp_offset >= kMinCPOffset); 383 ASSERT(cp_offset >= kMinCPOffset);
415 ASSERT(cp_offset + str.length() - 1 <= kMaxCPOffset); 384 ASSERT(cp_offset + str.length() - 1 <= kMaxCPOffset);
416 // It is vital that this loop is backwards due to the unchecked character 385 // It is vital that this loop is backwards due to the unchecked character
417 // load below. 386 // load below.
418 for (int i = str.length() - 1; i >= 0; i--) { 387 for (int i = str.length() - 1; i >= 0; i--) {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 buffer_ = Vector<byte>::New(old_buffer.length() * 2); 453 buffer_ = Vector<byte>::New(old_buffer.length() * 2);
485 own_buffer_ = true; 454 own_buffer_ = true;
486 memcpy(buffer_.start(), old_buffer.start(), old_buffer.length()); 455 memcpy(buffer_.start(), old_buffer.start(), old_buffer.length());
487 if (old_buffer_was_our_own) { 456 if (old_buffer_was_our_own) {
488 old_buffer.Dispose(); 457 old_buffer.Dispose();
489 } 458 }
490 } 459 }
491 460
492 461
493 } } // namespace v8::internal 462 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698