OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 __ And(a0, current_character(), Operand(mask)); | 471 __ And(a0, current_character(), Operand(mask)); |
472 BranchOrBacktrack(on_not_equal, ne, a0, Operand(c)); | 472 BranchOrBacktrack(on_not_equal, ne, a0, Operand(c)); |
473 } | 473 } |
474 | 474 |
475 | 475 |
476 void RegExpMacroAssemblerMIPS::CheckNotCharacterAfterMinusAnd( | 476 void RegExpMacroAssemblerMIPS::CheckNotCharacterAfterMinusAnd( |
477 uc16 c, | 477 uc16 c, |
478 uc16 minus, | 478 uc16 minus, |
479 uc16 mask, | 479 uc16 mask, |
480 Label* on_not_equal) { | 480 Label* on_not_equal) { |
481 UNIMPLEMENTED_MIPS(); | 481 ASSERT(minus < String::kMaxUtf16CodeUnit); |
| 482 __ Subu(a0, current_character(), Operand(minus)); |
| 483 __ And(a0, a0, Operand(mask)); |
| 484 BranchOrBacktrack(on_not_equal, ne, a0, Operand(c)); |
482 } | 485 } |
483 | 486 |
484 | 487 |
485 void RegExpMacroAssemblerMIPS::CheckCharacterInRange( | 488 void RegExpMacroAssemblerMIPS::CheckCharacterInRange( |
486 uc16 from, | 489 uc16 from, |
487 uc16 to, | 490 uc16 to, |
488 Label* on_in_range) { | 491 Label* on_in_range) { |
489 __ Subu(a0, current_character(), Operand(from)); | 492 __ Subu(a0, current_character(), Operand(from)); |
490 // Unsigned lower-or-same condition. | 493 // Unsigned lower-or-same condition. |
491 BranchOrBacktrack(on_in_range, ls, a0, Operand(to - from)); | 494 BranchOrBacktrack(on_in_range, ls, a0, Operand(to - from)); |
(...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1306 } | 1309 } |
1307 | 1310 |
1308 | 1311 |
1309 #undef __ | 1312 #undef __ |
1310 | 1313 |
1311 #endif // V8_INTERPRETED_REGEXP | 1314 #endif // V8_INTERPRETED_REGEXP |
1312 | 1315 |
1313 }} // namespace v8::internal | 1316 }} // namespace v8::internal |
1314 | 1317 |
1315 #endif // V8_TARGET_ARCH_MIPS | 1318 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |