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 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 void RegExpMacroAssemblerMIPS::CheckNotCharacter(uint32_t c, | 454 void RegExpMacroAssemblerMIPS::CheckNotCharacter(uint32_t c, |
455 Label* on_not_equal) { | 455 Label* on_not_equal) { |
456 BranchOrBacktrack(on_not_equal, ne, current_character(), Operand(c)); | 456 BranchOrBacktrack(on_not_equal, ne, current_character(), Operand(c)); |
457 } | 457 } |
458 | 458 |
459 | 459 |
460 void RegExpMacroAssemblerMIPS::CheckCharacterAfterAnd(uint32_t c, | 460 void RegExpMacroAssemblerMIPS::CheckCharacterAfterAnd(uint32_t c, |
461 uint32_t mask, | 461 uint32_t mask, |
462 Label* on_equal) { | 462 Label* on_equal) { |
463 __ And(a0, current_character(), Operand(mask)); | 463 __ And(a0, current_character(), Operand(mask)); |
464 BranchOrBacktrack(on_equal, eq, a0, Operand(c)); | 464 Operand rhs = (c == 0) ? Operand(zero_reg) : Operand(c); |
| 465 BranchOrBacktrack(on_equal, eq, a0, rhs); |
465 } | 466 } |
466 | 467 |
467 | 468 |
468 void RegExpMacroAssemblerMIPS::CheckNotCharacterAfterAnd(uint32_t c, | 469 void RegExpMacroAssemblerMIPS::CheckNotCharacterAfterAnd(uint32_t c, |
469 uint32_t mask, | 470 uint32_t mask, |
470 Label* on_not_equal) { | 471 Label* on_not_equal) { |
471 __ And(a0, current_character(), Operand(mask)); | 472 __ And(a0, current_character(), Operand(mask)); |
472 BranchOrBacktrack(on_not_equal, ne, a0, Operand(c)); | 473 Operand rhs = (c == 0) ? Operand(zero_reg) : Operand(c); |
| 474 BranchOrBacktrack(on_not_equal, ne, a0, rhs); |
473 } | 475 } |
474 | 476 |
475 | 477 |
476 void RegExpMacroAssemblerMIPS::CheckNotCharacterAfterMinusAnd( | 478 void RegExpMacroAssemblerMIPS::CheckNotCharacterAfterMinusAnd( |
477 uc16 c, | 479 uc16 c, |
478 uc16 minus, | 480 uc16 minus, |
479 uc16 mask, | 481 uc16 mask, |
480 Label* on_not_equal) { | 482 Label* on_not_equal) { |
481 UNIMPLEMENTED_MIPS(); | 483 UNIMPLEMENTED_MIPS(); |
482 } | 484 } |
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1306 } | 1308 } |
1307 | 1309 |
1308 | 1310 |
1309 #undef __ | 1311 #undef __ |
1310 | 1312 |
1311 #endif // V8_INTERPRETED_REGEXP | 1313 #endif // V8_INTERPRETED_REGEXP |
1312 | 1314 |
1313 }} // namespace v8::internal | 1315 }} // namespace v8::internal |
1314 | 1316 |
1315 #endif // V8_TARGET_ARCH_MIPS | 1317 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |