OLD | NEW |
1 // Copyright 2008-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2008-2009 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // A light-weight assembler for the Irregexp byte code. | 5 #ifndef V8_REGEXP_MACRO_ASSEMBLER_IRREGEXP_INL_H_ |
6 | 6 #define V8_REGEXP_MACRO_ASSEMBLER_IRREGEXP_INL_H_ |
7 | |
8 #include "src/v8.h" | |
9 | 7 |
10 #include "src/ast.h" | 8 #include "src/ast.h" |
11 #include "src/bytecodes-irregexp.h" | 9 #include "src/bytecodes-irregexp.h" |
12 | 10 |
13 #ifndef V8_REGEXP_MACRO_ASSEMBLER_IRREGEXP_INL_H_ | |
14 #define V8_REGEXP_MACRO_ASSEMBLER_IRREGEXP_INL_H_ | |
15 | |
16 namespace v8 { | 11 namespace v8 { |
17 namespace internal { | 12 namespace internal { |
18 | 13 |
19 #ifdef V8_INTERPRETED_REGEXP | 14 #ifdef V8_INTERPRETED_REGEXP |
20 | 15 |
21 void RegExpMacroAssemblerIrregexp::Emit(uint32_t byte, | 16 void RegExpMacroAssemblerIrregexp::Emit(uint32_t byte, |
22 uint32_t twenty_four_bits) { | 17 uint32_t twenty_four_bits) { |
23 uint32_t word = ((twenty_four_bits << BYTECODE_SHIFT) | byte); | 18 uint32_t word = ((twenty_four_bits << BYTECODE_SHIFT) | byte); |
24 DCHECK(pc_ <= buffer_.length()); | 19 DCHECK(pc_ <= buffer_.length()); |
25 if (pc_ + 3 >= buffer_.length()) { | 20 if (pc_ + 3 >= buffer_.length()) { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 } | 52 } |
58 *reinterpret_cast<uint32_t*>(buffer_.start() + pc_) = word; | 53 *reinterpret_cast<uint32_t*>(buffer_.start() + pc_) = word; |
59 pc_ += 4; | 54 pc_ += 4; |
60 } | 55 } |
61 | 56 |
62 #endif // V8_INTERPRETED_REGEXP | 57 #endif // V8_INTERPRETED_REGEXP |
63 | 58 |
64 } } // namespace v8::internal | 59 } } // namespace v8::internal |
65 | 60 |
66 #endif // V8_REGEXP_MACRO_ASSEMBLER_IRREGEXP_INL_H_ | 61 #endif // V8_REGEXP_MACRO_ASSEMBLER_IRREGEXP_INL_H_ |
OLD | NEW |