OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 __ cmp(r0, r1); | 410 __ cmp(r0, r1); |
411 __ b(lt, &loop); | 411 __ b(lt, &loop); |
412 | 412 |
413 // Move current character position to position after match. | 413 // Move current character position to position after match. |
414 __ sub(current_input_offset(), r2, end_of_input_address()); | 414 __ sub(current_input_offset(), r2, end_of_input_address()); |
415 __ bind(&fallthrough); | 415 __ bind(&fallthrough); |
416 } | 416 } |
417 | 417 |
418 | 418 |
419 void RegExpMacroAssemblerARM::CheckNotRegistersEqual(int reg1, | 419 void RegExpMacroAssemblerARM::CheckNotRegistersEqual(int reg1, |
420 int reg2, | 420 int reg2, |
421 Label* on_not_equal) { | 421 Label* on_not_equal) { |
422 __ ldr(r0, register_location(reg1)); | 422 __ ldr(r0, register_location(reg1)); |
423 __ ldr(r1, register_location(reg2)); | 423 __ ldr(r1, register_location(reg2)); |
424 __ cmp(r0, r1); | 424 __ cmp(r0, r1); |
425 BranchOrBacktrack(ne, on_not_equal); | 425 BranchOrBacktrack(ne, on_not_equal); |
426 } | 426 } |
427 | 427 |
428 | 428 |
429 void RegExpMacroAssemblerARM::CheckNotCharacter(uint32_t c, | 429 void RegExpMacroAssemblerARM::CheckNotCharacter(unsigned c, |
430 Label* on_not_equal) { | 430 Label* on_not_equal) { |
431 __ cmp(current_character(), Operand(c)); | 431 __ cmp(current_character(), Operand(c)); |
432 BranchOrBacktrack(ne, on_not_equal); | 432 BranchOrBacktrack(ne, on_not_equal); |
433 } | 433 } |
434 | 434 |
435 | 435 |
436 void RegExpMacroAssemblerARM::CheckCharacterAfterAnd(uint32_t c, | 436 void RegExpMacroAssemblerARM::CheckCharacterAfterAnd(uint32_t c, |
437 uint32_t mask, | 437 uint32_t mask, |
438 Label* on_equal) { | 438 Label* on_equal) { |
439 __ and_(r0, current_character(), Operand(mask)); | 439 __ and_(r0, current_character(), Operand(mask)); |
440 __ cmp(r0, Operand(c)); | 440 __ cmp(r0, Operand(c)); |
441 BranchOrBacktrack(eq, on_equal); | 441 BranchOrBacktrack(eq, on_equal); |
442 } | 442 } |
443 | 443 |
444 | 444 |
445 void RegExpMacroAssemblerARM::CheckNotCharacterAfterAnd(uint32_t c, | 445 void RegExpMacroAssemblerARM::CheckNotCharacterAfterAnd(unsigned c, |
446 uint32_t mask, | 446 unsigned mask, |
447 Label* on_not_equal) { | 447 Label* on_not_equal) { |
448 __ and_(r0, current_character(), Operand(mask)); | 448 __ and_(r0, current_character(), Operand(mask)); |
449 __ cmp(r0, Operand(c)); | 449 __ cmp(r0, Operand(c)); |
450 BranchOrBacktrack(ne, on_not_equal); | 450 BranchOrBacktrack(ne, on_not_equal); |
451 } | 451 } |
452 | 452 |
453 | 453 |
454 void RegExpMacroAssemblerARM::CheckNotCharacterAfterMinusAnd( | 454 void RegExpMacroAssemblerARM::CheckNotCharacterAfterMinusAnd( |
455 uc16 c, | 455 uc16 c, |
456 uc16 minus, | 456 uc16 minus, |
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1262 __ ldr(pc, MemOperand(sp, stack_alignment, PostIndex)); | 1262 __ ldr(pc, MemOperand(sp, stack_alignment, PostIndex)); |
1263 } | 1263 } |
1264 | 1264 |
1265 #undef __ | 1265 #undef __ |
1266 | 1266 |
1267 #endif // V8_INTERPRETED_REGEXP | 1267 #endif // V8_INTERPRETED_REGEXP |
1268 | 1268 |
1269 }} // namespace v8::internal | 1269 }} // namespace v8::internal |
1270 | 1270 |
1271 #endif // V8_TARGET_ARCH_ARM | 1271 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |