[presubmit] Enable readability/namespace linter checking.
[platform/upstream/v8.git] / src / regexp / regexp-macro-assembler-irregexp-inl.h
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
3 // found in the LICENSE file.
4
5 #ifndef V8_REGEXP_REGEXP_MACRO_ASSEMBLER_IRREGEXP_INL_H_
6 #define V8_REGEXP_REGEXP_MACRO_ASSEMBLER_IRREGEXP_INL_H_
7
8 #include "src/ast.h"
9 #include "src/regexp/bytecodes-irregexp.h"
10
11 namespace v8 {
12 namespace internal {
13
14 #ifdef V8_INTERPRETED_REGEXP
15
16 void RegExpMacroAssemblerIrregexp::Emit(uint32_t byte,
17                                         uint32_t twenty_four_bits) {
18   uint32_t word = ((twenty_four_bits << BYTECODE_SHIFT) | byte);
19   DCHECK(pc_ <= buffer_.length());
20   if (pc_  + 3 >= buffer_.length()) {
21     Expand();
22   }
23   *reinterpret_cast<uint32_t*>(buffer_.start() + pc_) = word;
24   pc_ += 4;
25 }
26
27
28 void RegExpMacroAssemblerIrregexp::Emit16(uint32_t word) {
29   DCHECK(pc_ <= buffer_.length());
30   if (pc_ + 1 >= buffer_.length()) {
31     Expand();
32   }
33   *reinterpret_cast<uint16_t*>(buffer_.start() + pc_) = word;
34   pc_ += 2;
35 }
36
37
38 void RegExpMacroAssemblerIrregexp::Emit8(uint32_t word) {
39   DCHECK(pc_ <= buffer_.length());
40   if (pc_ == buffer_.length()) {
41     Expand();
42   }
43   *reinterpret_cast<unsigned char*>(buffer_.start() + pc_) = word;
44   pc_ += 1;
45 }
46
47
48 void RegExpMacroAssemblerIrregexp::Emit32(uint32_t word) {
49   DCHECK(pc_ <= buffer_.length());
50   if (pc_ + 3 >= buffer_.length()) {
51     Expand();
52   }
53   *reinterpret_cast<uint32_t*>(buffer_.start() + pc_) = word;
54   pc_ += 4;
55 }
56
57 #endif  // V8_INTERPRETED_REGEXP
58
59 }  // namespace internal
60 }  // namespace v8
61
62 #endif  // V8_REGEXP_REGEXP_MACRO_ASSEMBLER_IRREGEXP_INL_H_