| 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 |