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 23 matching lines...) Expand all Loading... |
34 | 34 |
35 RegExpMacroAssemblerTracer::RegExpMacroAssemblerTracer( | 35 RegExpMacroAssemblerTracer::RegExpMacroAssemblerTracer( |
36 RegExpMacroAssembler* assembler) : | 36 RegExpMacroAssembler* assembler) : |
37 assembler_(assembler) { | 37 assembler_(assembler) { |
38 unsigned int type = assembler->Implementation(); | 38 unsigned int type = assembler->Implementation(); |
39 ASSERT(type < 3); | 39 ASSERT(type < 3); |
40 const char* impl_names[3] = {"IA32", "ARM", "Bytecode"}; | 40 const char* impl_names[3] = {"IA32", "ARM", "Bytecode"}; |
41 PrintF("RegExpMacroAssembler%s();\n", impl_names[type]); | 41 PrintF("RegExpMacroAssembler%s();\n", impl_names[type]); |
42 } | 42 } |
43 | 43 |
| 44 |
44 RegExpMacroAssemblerTracer::~RegExpMacroAssemblerTracer() { | 45 RegExpMacroAssemblerTracer::~RegExpMacroAssemblerTracer() { |
45 } | 46 } |
46 | 47 |
| 48 |
47 void RegExpMacroAssemblerTracer::Bind(Label* label) { | 49 void RegExpMacroAssemblerTracer::Bind(Label* label) { |
48 PrintF("label[%08x]: (Bind)\n", label, label); | 50 PrintF("label[%08x]: (Bind)\n", label, label); |
49 assembler_->Bind(label); | 51 assembler_->Bind(label); |
50 } | 52 } |
51 | 53 |
| 54 |
52 void RegExpMacroAssemblerTracer::EmitOrLink(Label* label) { | 55 void RegExpMacroAssemblerTracer::EmitOrLink(Label* label) { |
53 PrintF(" EmitOrLink(label[%08x]);\n", label); | 56 PrintF(" EmitOrLink(label[%08x]);\n", label); |
54 assembler_->EmitOrLink(label); | 57 assembler_->EmitOrLink(label); |
55 } | 58 } |
56 | 59 |
| 60 |
57 void RegExpMacroAssemblerTracer::AdvanceCurrentPosition(int by) { | 61 void RegExpMacroAssemblerTracer::AdvanceCurrentPosition(int by) { |
58 PrintF(" AdvanceCurrentPosition(by=%d);\n", by); | 62 PrintF(" AdvanceCurrentPosition(by=%d);\n", by); |
59 assembler_->AdvanceCurrentPosition(by); | 63 assembler_->AdvanceCurrentPosition(by); |
60 } | 64 } |
61 | 65 |
| 66 |
62 void RegExpMacroAssemblerTracer::PopCurrentPosition() { | 67 void RegExpMacroAssemblerTracer::PopCurrentPosition() { |
63 PrintF(" PopCurrentPosition();\n"); | 68 PrintF(" PopCurrentPosition();\n"); |
64 assembler_->PopCurrentPosition(); | 69 assembler_->PopCurrentPosition(); |
65 } | 70 } |
66 | 71 |
| 72 |
67 void RegExpMacroAssemblerTracer::PushCurrentPosition() { | 73 void RegExpMacroAssemblerTracer::PushCurrentPosition() { |
68 PrintF(" PushCurrentPosition();\n"); | 74 PrintF(" PushCurrentPosition();\n"); |
69 assembler_->PushCurrentPosition(); | 75 assembler_->PushCurrentPosition(); |
70 } | 76 } |
71 | 77 |
| 78 |
72 void RegExpMacroAssemblerTracer::Backtrack() { | 79 void RegExpMacroAssemblerTracer::Backtrack() { |
73 PrintF(" Backtrack();\n"); | 80 PrintF(" Backtrack();\n"); |
74 assembler_->Backtrack(); | 81 assembler_->Backtrack(); |
75 } | 82 } |
76 | 83 |
| 84 |
77 void RegExpMacroAssemblerTracer::GoTo(Label* label) { | 85 void RegExpMacroAssemblerTracer::GoTo(Label* label) { |
78 PrintF(" GoTo(label[%08x]);\n\n", label); | 86 PrintF(" GoTo(label[%08x]);\n\n", label); |
79 assembler_->GoTo(label); | 87 assembler_->GoTo(label); |
80 } | 88 } |
81 | 89 |
| 90 |
82 void RegExpMacroAssemblerTracer::PushBacktrack(Label* label) { | 91 void RegExpMacroAssemblerTracer::PushBacktrack(Label* label) { |
83 PrintF(" PushBacktrack(label[%08x]);\n", label); | 92 PrintF(" PushBacktrack(label[%08x]);\n", label); |
84 assembler_->PushBacktrack(label); | 93 assembler_->PushBacktrack(label); |
85 } | 94 } |
86 | 95 |
| 96 |
87 void RegExpMacroAssemblerTracer::Succeed() { | 97 void RegExpMacroAssemblerTracer::Succeed() { |
88 PrintF(" Succeed();\n"); | 98 PrintF(" Succeed();\n"); |
89 assembler_->Succeed(); | 99 assembler_->Succeed(); |
90 } | 100 } |
91 | 101 |
| 102 |
92 void RegExpMacroAssemblerTracer::Fail() { | 103 void RegExpMacroAssemblerTracer::Fail() { |
93 PrintF(" Fail();\n"); | 104 PrintF(" Fail();\n"); |
94 assembler_->Fail(); | 105 assembler_->Fail(); |
95 } | 106 } |
96 | 107 |
| 108 |
97 void RegExpMacroAssemblerTracer::PopRegister(int register_index) { | 109 void RegExpMacroAssemblerTracer::PopRegister(int register_index) { |
98 PrintF(" PopRegister(register=%d);\n", register_index); | 110 PrintF(" PopRegister(register=%d);\n", register_index); |
99 assembler_->PopRegister(register_index); | 111 assembler_->PopRegister(register_index); |
100 } | 112 } |
101 | 113 |
| 114 |
102 void RegExpMacroAssemblerTracer::PushRegister(int register_index) { | 115 void RegExpMacroAssemblerTracer::PushRegister(int register_index) { |
103 PrintF(" PushRegister(register=%d);\n", register_index); | 116 PrintF(" PushRegister(register=%d);\n", register_index); |
104 assembler_->PushRegister(register_index); | 117 assembler_->PushRegister(register_index); |
105 } | 118 } |
106 | 119 |
| 120 |
107 void RegExpMacroAssemblerTracer::AdvanceRegister(int reg, int by) { | 121 void RegExpMacroAssemblerTracer::AdvanceRegister(int reg, int by) { |
108 PrintF(" AdvanceRegister(register=%d, by=%d);\n", reg, by); | 122 PrintF(" AdvanceRegister(register=%d, by=%d);\n", reg, by); |
109 assembler_->AdvanceRegister(reg, by); | 123 assembler_->AdvanceRegister(reg, by); |
110 } | 124 } |
111 | 125 |
| 126 |
112 void RegExpMacroAssemblerTracer::SetRegister(int register_index, int to) { | 127 void RegExpMacroAssemblerTracer::SetRegister(int register_index, int to) { |
113 PrintF(" SetRegister(register=%d, to=%d);\n", register_index, to); | 128 PrintF(" SetRegister(register=%d, to=%d);\n", register_index, to); |
114 assembler_->SetRegister(register_index, to); | 129 assembler_->SetRegister(register_index, to); |
115 } | 130 } |
116 | 131 |
| 132 |
117 void RegExpMacroAssemblerTracer::WriteCurrentPositionToRegister(int reg) { | 133 void RegExpMacroAssemblerTracer::WriteCurrentPositionToRegister(int reg) { |
118 PrintF(" WriteCurrentPositionToRegister(register=%d);\n", reg); | 134 PrintF(" WriteCurrentPositionToRegister(register=%d);\n", reg); |
119 assembler_->WriteCurrentPositionToRegister(reg); | 135 assembler_->WriteCurrentPositionToRegister(reg); |
120 } | 136 } |
121 | 137 |
| 138 |
122 void RegExpMacroAssemblerTracer::ReadCurrentPositionFromRegister(int reg) { | 139 void RegExpMacroAssemblerTracer::ReadCurrentPositionFromRegister(int reg) { |
123 PrintF(" ReadCurrentPositionFromRegister(register=%d);\n", reg); | 140 PrintF(" ReadCurrentPositionFromRegister(register=%d);\n", reg); |
124 assembler_->ReadCurrentPositionFromRegister(reg); | 141 assembler_->ReadCurrentPositionFromRegister(reg); |
125 } | 142 } |
126 | 143 |
| 144 |
127 void RegExpMacroAssemblerTracer::WriteStackPointerToRegister(int reg) { | 145 void RegExpMacroAssemblerTracer::WriteStackPointerToRegister(int reg) { |
128 PrintF(" WriteStackPointerToRegister(register=%d);\n", reg); | 146 PrintF(" WriteStackPointerToRegister(register=%d);\n", reg); |
129 assembler_->WriteStackPointerToRegister(reg); | 147 assembler_->WriteStackPointerToRegister(reg); |
130 } | 148 } |
131 | 149 |
| 150 |
132 void RegExpMacroAssemblerTracer::ReadStackPointerFromRegister(int reg) { | 151 void RegExpMacroAssemblerTracer::ReadStackPointerFromRegister(int reg) { |
133 PrintF(" ReadStackPointerFromRegister(register=%d);\n", reg); | 152 PrintF(" ReadStackPointerFromRegister(register=%d);\n", reg); |
134 assembler_->ReadStackPointerFromRegister(reg); | 153 assembler_->ReadStackPointerFromRegister(reg); |
135 } | 154 } |
136 | 155 |
| 156 |
137 void RegExpMacroAssemblerTracer::LoadCurrentCharacter(int cp_offset, | 157 void RegExpMacroAssemblerTracer::LoadCurrentCharacter(int cp_offset, |
138 Label* on_end_of_input) { | 158 Label* on_end_of_input) { |
139 PrintF(" LoadCurrentCharacter(cp_offset=%d, label[%08x]);\n", cp_offset, | 159 PrintF(" LoadCurrentCharacter(cp_offset=%d, label[%08x]);\n", cp_offset, |
140 on_end_of_input); | 160 on_end_of_input); |
141 assembler_->LoadCurrentCharacter(cp_offset, on_end_of_input); | 161 assembler_->LoadCurrentCharacter(cp_offset, on_end_of_input); |
142 } | 162 } |
143 | 163 |
| 164 |
144 void RegExpMacroAssemblerTracer::CheckCharacterLT(uc16 limit, Label* on_less) { | 165 void RegExpMacroAssemblerTracer::CheckCharacterLT(uc16 limit, Label* on_less) { |
145 PrintF(" CheckCharacterLT(c='u%04x', label[%08x]);\n", limit, on_less); | 166 PrintF(" CheckCharacterLT(c='u%04x', label[%08x]);\n", limit, on_less); |
146 assembler_->CheckCharacterLT(limit, on_less); | 167 assembler_->CheckCharacterLT(limit, on_less); |
147 } | 168 } |
148 | 169 |
| 170 |
149 void RegExpMacroAssemblerTracer::CheckCharacterGT(uc16 limit, | 171 void RegExpMacroAssemblerTracer::CheckCharacterGT(uc16 limit, |
150 Label* on_greater) { | 172 Label* on_greater) { |
151 PrintF(" CheckCharacterGT(c='u%04x', label[%08x]);\n", limit, on_greater); | 173 PrintF(" CheckCharacterGT(c='u%04x', label[%08x]);\n", limit, on_greater); |
152 assembler_->CheckCharacterGT(limit, on_greater); | 174 assembler_->CheckCharacterGT(limit, on_greater); |
153 } | 175 } |
154 | 176 |
| 177 |
155 void RegExpMacroAssemblerTracer::CheckCharacter(uc16 c, Label* on_equal) { | 178 void RegExpMacroAssemblerTracer::CheckCharacter(uc16 c, Label* on_equal) { |
156 PrintF(" CheckCharacter(c='u%04x', label[%08x]);\n", c, on_equal); | 179 PrintF(" CheckCharacter(c='u%04x', label[%08x]);\n", c, on_equal); |
157 assembler_->CheckCharacter(c, on_equal); | 180 assembler_->CheckCharacter(c, on_equal); |
158 } | 181 } |
159 | 182 |
| 183 |
| 184 void RegExpMacroAssemblerTracer::CheckNotAtStart(Label* on_not_at_start) { |
| 185 PrintF(" CheckNotAtStart(label[%08x]);\n", on_not_at_start); |
| 186 } |
| 187 |
| 188 |
160 void RegExpMacroAssemblerTracer::CheckNotCharacter(uc16 c, | 189 void RegExpMacroAssemblerTracer::CheckNotCharacter(uc16 c, |
161 Label* on_not_equal) { | 190 Label* on_not_equal) { |
162 PrintF(" CheckNotCharacter(c='u%04x', label[%08x]);\n", c, on_not_equal); | 191 PrintF(" CheckNotCharacter(c='u%04x', label[%08x]);\n", c, on_not_equal); |
163 assembler_->CheckNotCharacter(c, on_not_equal); | 192 assembler_->CheckNotCharacter(c, on_not_equal); |
164 } | 193 } |
165 | 194 |
| 195 |
166 void RegExpMacroAssemblerTracer::CheckNotCharacterAfterOr(uc16 c, uc16 mask, | 196 void RegExpMacroAssemblerTracer::CheckNotCharacterAfterOr(uc16 c, uc16 mask, |
167 Label* on_not_equal) { | 197 Label* on_not_equal) { |
168 PrintF(" CheckNotCharacterAfterOr(c='u%04x', mask=0x%04x, label[%08x]);\n", c, | 198 PrintF(" CheckNotCharacterAfterOr(c='u%04x', mask=0x%04x, label[%08x]);\n", c, |
169 mask, on_not_equal); | 199 mask, on_not_equal); |
170 assembler_->CheckNotCharacterAfterOr(c, mask, on_not_equal); | 200 assembler_->CheckNotCharacterAfterOr(c, mask, on_not_equal); |
171 } | 201 } |
172 | 202 |
| 203 |
173 void RegExpMacroAssemblerTracer::CheckNotCharacterAfterMinusOr( | 204 void RegExpMacroAssemblerTracer::CheckNotCharacterAfterMinusOr( |
174 uc16 c, | 205 uc16 c, |
175 uc16 mask, | 206 uc16 mask, |
176 Label* on_not_equal) { | 207 Label* on_not_equal) { |
177 PrintF(" CheckNotCharacterAfterMinusOr(c='u%04x', mask=0x%04x, " | 208 PrintF(" CheckNotCharacterAfterMinusOr(c='u%04x', mask=0x%04x, " |
178 "label[%08x]);\n", c, mask, on_not_equal); | 209 "label[%08x]);\n", c, mask, on_not_equal); |
179 assembler_->CheckNotCharacterAfterMinusOr(c, mask, on_not_equal); | 210 assembler_->CheckNotCharacterAfterMinusOr(c, mask, on_not_equal); |
180 } | 211 } |
181 | 212 |
| 213 |
182 void RegExpMacroAssemblerTracer::CheckNotBackReference(int start_reg, | 214 void RegExpMacroAssemblerTracer::CheckNotBackReference(int start_reg, |
183 Label* on_no_match) { | 215 Label* on_no_match) { |
184 PrintF(" CheckNotBackReference(register=%d, label[%08x]);\n", start_reg, | 216 PrintF(" CheckNotBackReference(register=%d, label[%08x]);\n", start_reg, |
185 on_no_match); | 217 on_no_match); |
186 assembler_->CheckNotBackReference(start_reg, on_no_match); | 218 assembler_->CheckNotBackReference(start_reg, on_no_match); |
187 } | 219 } |
188 | 220 |
| 221 |
189 void RegExpMacroAssemblerTracer::CheckNotBackReferenceIgnoreCase( | 222 void RegExpMacroAssemblerTracer::CheckNotBackReferenceIgnoreCase( |
190 int start_reg, | 223 int start_reg, |
191 Label* on_no_match) { | 224 Label* on_no_match) { |
192 PrintF(" CheckNotBackReferenceIgnoreCase(register=%d, label[%08x]);\n", | 225 PrintF(" CheckNotBackReferenceIgnoreCase(register=%d, label[%08x]);\n", |
193 start_reg, on_no_match); | 226 start_reg, on_no_match); |
194 assembler_->CheckNotBackReferenceIgnoreCase(start_reg, on_no_match); | 227 assembler_->CheckNotBackReferenceIgnoreCase(start_reg, on_no_match); |
195 } | 228 } |
196 | 229 |
197 | 230 |
198 void RegExpMacroAssemblerTracer::CheckNotRegistersEqual(int reg1, | 231 void RegExpMacroAssemblerTracer::CheckNotRegistersEqual(int reg1, |
(...skipping 11 matching lines...) Expand all Loading... |
210 int cp_offset, | 243 int cp_offset, |
211 Label* on_failure) { | 244 Label* on_failure) { |
212 PrintF(" CheckCharacters(str=\""); | 245 PrintF(" CheckCharacters(str=\""); |
213 for (int i = 0; i < str.length(); i++) { | 246 for (int i = 0; i < str.length(); i++) { |
214 PrintF("u%04x", str[i]); | 247 PrintF("u%04x", str[i]); |
215 } | 248 } |
216 PrintF("\", cp_offset=%d, label[%08x])\n", cp_offset, on_failure); | 249 PrintF("\", cp_offset=%d, label[%08x])\n", cp_offset, on_failure); |
217 assembler_->CheckCharacters(str, cp_offset, on_failure); | 250 assembler_->CheckCharacters(str, cp_offset, on_failure); |
218 } | 251 } |
219 | 252 |
| 253 |
220 void RegExpMacroAssemblerTracer::CheckCurrentPosition(int register_index, | 254 void RegExpMacroAssemblerTracer::CheckCurrentPosition(int register_index, |
221 Label* on_equal) { | 255 Label* on_equal) { |
222 PrintF(" CheckCurrentPosition(register=%d, label[%08x]);\n", register_index, | 256 PrintF(" CheckCurrentPosition(register=%d, label[%08x]);\n", register_index, |
223 on_equal); | 257 on_equal); |
224 assembler_->CheckCurrentPosition(register_index, on_equal); | 258 assembler_->CheckCurrentPosition(register_index, on_equal); |
225 } | 259 } |
226 | 260 |
| 261 |
227 void RegExpMacroAssemblerTracer::CheckBitmap(uc16 start, Label* bitmap, | 262 void RegExpMacroAssemblerTracer::CheckBitmap(uc16 start, Label* bitmap, |
228 Label* on_zero) { | 263 Label* on_zero) { |
229 PrintF(" CheckBitmap(start=u$04x, <bitmap>, label[%08x]);\n", start, on_zero); | 264 PrintF(" CheckBitmap(start=u$04x, <bitmap>, label[%08x]);\n", start, on_zero); |
230 assembler_->CheckBitmap(start, bitmap, on_zero); | 265 assembler_->CheckBitmap(start, bitmap, on_zero); |
231 } | 266 } |
232 | 267 |
| 268 |
233 void RegExpMacroAssemblerTracer::DispatchHalfNibbleMap( | 269 void RegExpMacroAssemblerTracer::DispatchHalfNibbleMap( |
234 uc16 start, | 270 uc16 start, |
235 Label* half_nibble_map, | 271 Label* half_nibble_map, |
236 const Vector<Label*>& destinations) { | 272 const Vector<Label*>& destinations) { |
237 PrintF(" DispatchHalfNibbleMap(start=u$04x, <half_nibble_map>, [", start); | 273 PrintF(" DispatchHalfNibbleMap(start=u$04x, <half_nibble_map>, [", start); |
238 for (int i = 0; i < destinations.length(); i++) { | 274 for (int i = 0; i < destinations.length(); i++) { |
239 if (i > 0) | 275 if (i > 0) |
240 PrintF(", "); | 276 PrintF(", "); |
241 PrintF("label[%08x]", destinations[i]); | 277 PrintF("label[%08x]", destinations[i]); |
242 } | 278 } |
243 PrintF(");\n"); | 279 PrintF(");\n"); |
244 assembler_->DispatchHalfNibbleMap(start, half_nibble_map, destinations); | 280 assembler_->DispatchHalfNibbleMap(start, half_nibble_map, destinations); |
245 } | 281 } |
246 | 282 |
| 283 |
247 void RegExpMacroAssemblerTracer::DispatchByteMap( | 284 void RegExpMacroAssemblerTracer::DispatchByteMap( |
248 uc16 start, | 285 uc16 start, |
249 Label* byte_map, | 286 Label* byte_map, |
250 const Vector<Label*>& destinations) { | 287 const Vector<Label*>& destinations) { |
251 PrintF(" DispatchByteMap(start=u$04x, <byte_map>, [", start); | 288 PrintF(" DispatchByteMap(start=u$04x, <byte_map>, [", start); |
252 for (int i = 0; i < destinations.length(); i++) { | 289 for (int i = 0; i < destinations.length(); i++) { |
253 if (i > 0) | 290 if (i > 0) |
254 PrintF(", "); | 291 PrintF(", "); |
255 PrintF("label[%08x]", destinations[i]); | 292 PrintF("label[%08x]", destinations[i]); |
256 } | 293 } |
257 PrintF(");\n"); | 294 PrintF(");\n"); |
258 assembler_->DispatchByteMap(start, byte_map, destinations); | 295 assembler_->DispatchByteMap(start, byte_map, destinations); |
259 } | 296 } |
260 | 297 |
| 298 |
261 void RegExpMacroAssemblerTracer::DispatchHighByteMap( | 299 void RegExpMacroAssemblerTracer::DispatchHighByteMap( |
262 byte start, | 300 byte start, |
263 Label* byte_map, | 301 Label* byte_map, |
264 const Vector<Label*>& destinations) { | 302 const Vector<Label*>& destinations) { |
265 PrintF(" DispatchHighByteMap(start=u$04x, <byte_map>, [", start); | 303 PrintF(" DispatchHighByteMap(start=u$04x, <byte_map>, [", start); |
266 for (int i = 0; i < destinations.length(); i++) { | 304 for (int i = 0; i < destinations.length(); i++) { |
267 if (i > 0) | 305 if (i > 0) |
268 PrintF(", "); | 306 PrintF(", "); |
269 PrintF("label[%08x]", destinations[i]); | 307 PrintF("label[%08x]", destinations[i]); |
270 } | 308 } |
271 PrintF(");\n"); | 309 PrintF(");\n"); |
272 assembler_->DispatchHighByteMap(start, byte_map, destinations); | 310 assembler_->DispatchHighByteMap(start, byte_map, destinations); |
273 } | 311 } |
274 | 312 |
| 313 |
275 void RegExpMacroAssemblerTracer::IfRegisterLT(int register_index, | 314 void RegExpMacroAssemblerTracer::IfRegisterLT(int register_index, |
276 int comparand, Label* if_lt) { | 315 int comparand, Label* if_lt) { |
277 PrintF(" IfRegisterLT(register=%d, number=%d, label[%08x]);\n", | 316 PrintF(" IfRegisterLT(register=%d, number=%d, label[%08x]);\n", |
278 register_index, comparand, if_lt); | 317 register_index, comparand, if_lt); |
279 assembler_->IfRegisterLT(register_index, comparand, if_lt); | 318 assembler_->IfRegisterLT(register_index, comparand, if_lt); |
280 } | 319 } |
281 | 320 |
| 321 |
282 void RegExpMacroAssemblerTracer::IfRegisterGE(int register_index, | 322 void RegExpMacroAssemblerTracer::IfRegisterGE(int register_index, |
283 int comparand, Label* if_ge) { | 323 int comparand, Label* if_ge) { |
284 PrintF(" IfRegisterGE(register=%d, number=%d, label[%08x]);\n", | 324 PrintF(" IfRegisterGE(register=%d, number=%d, label[%08x]);\n", |
285 register_index, comparand, if_ge); | 325 register_index, comparand, if_ge); |
286 assembler_->IfRegisterGE(register_index, comparand, if_ge); | 326 assembler_->IfRegisterGE(register_index, comparand, if_ge); |
287 } | 327 } |
288 | 328 |
| 329 |
289 RegExpMacroAssembler::IrregexpImplementation | 330 RegExpMacroAssembler::IrregexpImplementation |
290 RegExpMacroAssemblerTracer::Implementation() { | 331 RegExpMacroAssemblerTracer::Implementation() { |
291 return assembler_->Implementation(); | 332 return assembler_->Implementation(); |
292 } | 333 } |
293 | 334 |
| 335 |
294 Handle<Object> RegExpMacroAssemblerTracer::GetCode() { | 336 Handle<Object> RegExpMacroAssemblerTracer::GetCode() { |
295 PrintF(" GetCode();\n"); | 337 PrintF(" GetCode();\n"); |
296 return assembler_->GetCode(); | 338 return assembler_->GetCode(); |
297 } | 339 } |
298 | 340 |
299 }} // namespace v8::internal | 341 }} // namespace v8::internal |
OLD | NEW |