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

Side by Side Diff: src/assembler.cc

Issue 17416: * Move irregexp backtrack stack to external memory area, instead of the system stack. (Closed)
Patch Set: Added explicit stack check requests to push operations. Created 11 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
« no previous file with comments | « src/assembler.h ('k') | src/jsregexp.cc » ('j') | src/jsregexp.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 23 matching lines...) Expand all
34 34
35 #include "v8.h" 35 #include "v8.h"
36 36
37 #include "arguments.h" 37 #include "arguments.h"
38 #include "execution.h" 38 #include "execution.h"
39 #include "ic-inl.h" 39 #include "ic-inl.h"
40 #include "factory.h" 40 #include "factory.h"
41 #include "runtime.h" 41 #include "runtime.h"
42 #include "serialize.h" 42 #include "serialize.h"
43 #include "stub-cache.h" 43 #include "stub-cache.h"
44 #include "regexp-stack.h"
44 45
45 namespace v8 { namespace internal { 46 namespace v8 { namespace internal {
46 47
47 48
48 // ----------------------------------------------------------------------------- 49 // -----------------------------------------------------------------------------
49 // Implementation of Label 50 // Implementation of Label
50 51
51 int Label::pos() const { 52 int Label::pos() const {
52 if (pos_ < 0) return -pos_ - 1; 53 if (pos_ < 0) return -pos_ - 1;
53 if (pos_ > 0) return pos_ - 1; 54 if (pos_ > 0) return pos_ - 1;
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 ExternalReference ExternalReference::the_hole_value_location() { 545 ExternalReference ExternalReference::the_hole_value_location() {
545 return ExternalReference(Factory::the_hole_value().location()); 546 return ExternalReference(Factory::the_hole_value().location());
546 } 547 }
547 548
548 549
549 ExternalReference ExternalReference::address_of_stack_guard_limit() { 550 ExternalReference ExternalReference::address_of_stack_guard_limit() {
550 return ExternalReference(StackGuard::address_of_jslimit()); 551 return ExternalReference(StackGuard::address_of_jslimit());
551 } 552 }
552 553
553 554
555 ExternalReference ExternalReference::address_of_regexp_stack_limit() {
556 return ExternalReference(RegExpStack::limit_address());
557 }
558
559
554 ExternalReference ExternalReference::debug_break() { 560 ExternalReference ExternalReference::debug_break() {
555 return ExternalReference(FUNCTION_ADDR(Debug::Break)); 561 return ExternalReference(FUNCTION_ADDR(Debug::Break));
556 } 562 }
557 563
558 564
559 ExternalReference ExternalReference::new_space_start() { 565 ExternalReference ExternalReference::new_space_start() {
560 return ExternalReference(Heap::NewSpaceStart()); 566 return ExternalReference(Heap::NewSpaceStart());
561 } 567 }
562 568
563 ExternalReference ExternalReference::new_space_allocation_top_address() { 569 ExternalReference ExternalReference::new_space_allocation_top_address() {
564 return ExternalReference(Heap::NewSpaceAllocationTopAddress()); 570 return ExternalReference(Heap::NewSpaceAllocationTopAddress());
565 } 571 }
566 572
567 ExternalReference ExternalReference::heap_always_allocate_scope_depth() { 573 ExternalReference ExternalReference::heap_always_allocate_scope_depth() {
568 return ExternalReference(Heap::always_allocate_scope_depth_address()); 574 return ExternalReference(Heap::always_allocate_scope_depth_address());
569 } 575 }
570 576
571 ExternalReference ExternalReference::new_space_allocation_limit_address() { 577 ExternalReference ExternalReference::new_space_allocation_limit_address() {
572 return ExternalReference(Heap::NewSpaceAllocationLimitAddress()); 578 return ExternalReference(Heap::NewSpaceAllocationLimitAddress());
573 } 579 }
574 580
575 ExternalReference ExternalReference::debug_step_in_fp_address() { 581 ExternalReference ExternalReference::debug_step_in_fp_address() {
576 return ExternalReference(Debug::step_in_fp_addr()); 582 return ExternalReference(Debug::step_in_fp_addr());
577 } 583 }
578 584
579 } } // namespace v8::internal 585 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/assembler.h ('k') | src/jsregexp.cc » ('j') | src/jsregexp.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698