OLD | NEW |
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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 // The maximal number of pushes between stack checks. Users must supply | 54 // The maximal number of pushes between stack checks. Users must supply |
55 // kCheckStackLimit flag to push operations (instead of kNoStackLimitCheck) | 55 // kCheckStackLimit flag to push operations (instead of kNoStackLimitCheck) |
56 // at least once for every stack_limit() pushes that are executed. | 56 // at least once for every stack_limit() pushes that are executed. |
57 virtual int stack_limit_slack() = 0; | 57 virtual int stack_limit_slack() = 0; |
58 virtual void AdvanceCurrentPosition(int by) = 0; // Signed cp change. | 58 virtual void AdvanceCurrentPosition(int by) = 0; // Signed cp change. |
59 virtual void AdvanceRegister(int reg, int by) = 0; // r[reg] += by. | 59 virtual void AdvanceRegister(int reg, int by) = 0; // r[reg] += by. |
60 // Continues execution from the position pushed on the top of the backtrack | 60 // Continues execution from the position pushed on the top of the backtrack |
61 // stack by an earlier PushBacktrack(Label*). | 61 // stack by an earlier PushBacktrack(Label*). |
62 virtual void Backtrack() = 0; | 62 virtual void Backtrack() = 0; |
63 virtual void Bind(Label* label) = 0; | 63 virtual void Bind(Label* label) = 0; |
| 64 virtual void CheckAtStart(Label* on_at_start) = 0; |
64 // Check the current character against a bitmap. The range of the current | 65 // Check the current character against a bitmap. The range of the current |
65 // character must be from start to start + length_of_bitmap_in_bits. | 66 // character must be from start to start + length_of_bitmap_in_bits. |
66 virtual void CheckBitmap( | 67 virtual void CheckBitmap( |
67 uc16 start, // The bitmap is indexed from this character. | 68 uc16 start, // The bitmap is indexed from this character. |
68 Label* bitmap, // Where the bitmap is emitted. | 69 Label* bitmap, // Where the bitmap is emitted. |
69 Label* on_zero) = 0; // Where to go if the bit is 0. Fall through on 1. | 70 Label* on_zero) = 0; // Where to go if the bit is 0. Fall through on 1. |
70 // Dispatch after looking the current character up in a 2-bits-per-entry | 71 // Dispatch after looking the current character up in a 2-bits-per-entry |
71 // map. The destinations vector has up to 4 labels. | 72 // map. The destinations vector has up to 4 labels. |
72 virtual void CheckCharacter(uint32_t c, Label* on_equal) = 0; | 73 virtual void CheckCharacter(uint32_t c, Label* on_equal) = 0; |
73 // Bitwise and the current character with the given constant and then | 74 // Bitwise and the current character with the given constant and then |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 ArraySlice GetBuffer(Vector<T> values); | 211 ArraySlice GetBuffer(Vector<T> values); |
211 private: | 212 private: |
212 size_t byte_array_size_; | 213 size_t byte_array_size_; |
213 Handle<ByteArray> current_byte_array_; | 214 Handle<ByteArray> current_byte_array_; |
214 int current_byte_array_free_offset_; | 215 int current_byte_array_free_offset_; |
215 }; | 216 }; |
216 | 217 |
217 } } // namespace v8::internal | 218 } } // namespace v8::internal |
218 | 219 |
219 #endif // V8_REGEXP_MACRO_ASSEMBLER_H_ | 220 #endif // V8_REGEXP_MACRO_ASSEMBLER_H_ |
OLD | NEW |