Chromium Code Reviews| Index: src/arm/regexp-macro-assembler-arm.cc | 
| diff --git a/src/arm/regexp-macro-assembler-arm.cc b/src/arm/regexp-macro-assembler-arm.cc | 
| index 8f45886d92f404a5da28126181a8aaec276c7aa8..37bb1f0aae23a2e61e92234c9c69438eee8d1e24 100644 | 
| --- a/src/arm/regexp-macro-assembler-arm.cc | 
| +++ b/src/arm/regexp-macro-assembler-arm.cc | 
| @@ -142,7 +142,6 @@ int RegExpMacroAssemblerARM::stack_limit_slack() { | 
| void RegExpMacroAssemblerARM::AdvanceCurrentPosition(int by) { | 
| if (by != 0) { | 
| - Label inside_string; | 
| __ add(current_input_offset(), | 
| current_input_offset(), Operand(by * char_size())); | 
| } | 
| @@ -927,6 +926,19 @@ void RegExpMacroAssemblerARM::ReadStackPointerFromRegister(int reg) { | 
| } | 
| +void RegExpMacroAssemblerARM::SetCurrentPositionFromEnd(int by) { | 
| + Label after_position; | 
| 
 
Lasse Reichstein
2010/10/19 13:39:24
There is no NearLabel for ARM.
 
 | 
| + __ cmp(current_input_offset(), Operand(-by * char_size())); | 
| + __ b(ge, &after_position); | 
| 
 
Lasse Reichstein
2010/10/19 13:39:24
Comparison must be signed, since either value can
 
 | 
| + __ mov(current_input_offset(), Operand(-by * char_size())); | 
| + // On RegExp code entry (where this operation is used), the character before | 
| + // the current position is expected to be already loaded. | 
| + // We have advanced the position, so it's safe to read backwards. | 
| + LoadCurrentCharacterUnchecked(-1, 1); | 
| + __ bind(&after_position); | 
| +} | 
| + | 
| + | 
| void RegExpMacroAssemblerARM::SetRegister(int register_index, int to) { | 
| ASSERT(register_index >= num_saved_registers_); // Reserved for positions! | 
| __ mov(r0, Operand(to)); |