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

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

Issue 507051: Attempt to make \b\w+ faster. Slight performance increase on, e.g., string unpacking. (Closed)
Patch Set: Addressed review comments. Created 10 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/parser.cc ('k') | src/regexp-macro-assembler-tracer.h » ('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 2008 the V8 project authors. All rights reserved. 1 // Copyright 2008 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 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 // Checks whether the given offset from the current position is before 116 // Checks whether the given offset from the current position is before
117 // the end of the string. May overwrite the current character. 117 // the end of the string. May overwrite the current character.
118 virtual void CheckPosition(int cp_offset, Label* on_outside_input) { 118 virtual void CheckPosition(int cp_offset, Label* on_outside_input) {
119 LoadCurrentCharacter(cp_offset, on_outside_input, true); 119 LoadCurrentCharacter(cp_offset, on_outside_input, true);
120 } 120 }
121 // Check whether a standard/default character class matches the current 121 // Check whether a standard/default character class matches the current
122 // character. Returns false if the type of special character class does 122 // character. Returns false if the type of special character class does
123 // not have custom support. 123 // not have custom support.
124 // May clobber the current loaded character. 124 // May clobber the current loaded character.
125 virtual bool CheckSpecialCharacterClass(uc16 type, 125 virtual bool CheckSpecialCharacterClass(uc16 type,
126 int cp_offset,
127 bool check_offset,
128 Label* on_no_match) { 126 Label* on_no_match) {
129 return false; 127 return false;
130 } 128 }
131 virtual void Fail() = 0; 129 virtual void Fail() = 0;
132 virtual Handle<Object> GetCode(Handle<String> source) = 0; 130 virtual Handle<Object> GetCode(Handle<String> source) = 0;
133 virtual void GoTo(Label* label) = 0; 131 virtual void GoTo(Label* label) = 0;
134 // Check whether a register is >= a given constant and go to a label if it 132 // Check whether a register is >= a given constant and go to a label if it
135 // is. Backtracks instead if the label is NULL. 133 // is. Backtracks instead if the label is NULL.
136 virtual void IfRegisterGE(int reg, int comparand, Label* if_ge) = 0; 134 virtual void IfRegisterGE(int reg, int comparand, Label* if_ge) = 0;
137 // Check whether a register is < a given constant and go to a label if it is. 135 // Check whether a register is < a given constant and go to a label if it is.
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 const byte* input_end, 211 const byte* input_end,
214 int* output, 212 int* output,
215 bool at_start); 213 bool at_start);
216 }; 214 };
217 215
218 #endif // V8_NATIVE_REGEXP 216 #endif // V8_NATIVE_REGEXP
219 217
220 } } // namespace v8::internal 218 } } // namespace v8::internal
221 219
222 #endif // V8_REGEXP_MACRO_ASSEMBLER_H_ 220 #endif // V8_REGEXP_MACRO_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « src/parser.cc ('k') | src/regexp-macro-assembler-tracer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698