Lines Matching refs:assembler

10 #include "src/regexp/regexp-macro-assembler-arch.h"
379 void Trace::RestoreAffectedRegisters(RegExpMacroAssembler* assembler,
385 assembler->PopRegister(reg);
391 assembler->ClearRegisters(reg, clear_to);
396 void Trace::PerformDeferredActions(RegExpMacroAssembler* assembler,
403 const int push_limit = (assembler->stack_limit_slack() + 1) / 2;
503 assembler->PushRegister(reg, stack_check);
511 assembler->WriteCurrentPositionToRegister(reg, store_position);
513 assembler->ClearRegisters(reg, reg);
515 assembler->SetRegister(reg, value);
517 assembler->AdvanceRegister(reg, value);
526 RegExpMacroAssembler* assembler = compiler->macro_assembler();
534 if (cp_offset_ != 0) assembler->AdvanceCurrentPosition(cp_offset_);
548 assembler->PushCurrentPosition();
555 PerformDeferredActions(assembler, max_register, affected_registers,
559 assembler->AdvanceCurrentPosition(cp_offset_);
564 assembler->PushBacktrack(&undo);
570 assembler->GoTo(successor->label());
574 assembler->BindJumpTarget(&undo);
575 RestoreAffectedRegisters(assembler, max_register, registers_to_pop,
578 assembler->Backtrack();
580 assembler->PopCurrentPosition();
581 assembler->GoTo(backtrack());
586 RegExpMacroAssembler* assembler = compiler->macro_assembler();
593 assembler->Bind(label());
598 assembler->ReadCurrentPositionFromRegister(current_position_register_);
599 assembler->ReadStackPointerFromRegister(stack_pointer_register_);
604 assembler->ClearRegisters(clear_capture_start_, clear_capture_end);
608 assembler->Backtrack();
616 RegExpMacroAssembler* assembler = compiler->macro_assembler();
618 assembler->Bind(label());
622 assembler->Succeed();
625 assembler->GoTo(trace->backtrack());
818 RegExpMacroAssembler* assembler = compiler->macro_assembler();
821 assembler->LoadCurrentCharacter(cp_offset, on_failure, check);
824 assembler->CheckNotCharacter(c, on_failure);
1521 RegExpMacroAssembler* assembler = compiler->macro_assembler();
1533 assembler->LoadCurrentCharacter(
1562 assembler->CheckCharacterAfterAnd(value, mask, on_possible_success);
1564 assembler->CheckCharacter(value, on_possible_success);
1568 assembler->CheckNotCharacterAfterAnd(value, mask, trace->backtrack());
1570 assembler->CheckNotCharacter(value, trace->backtrack());
2092 void EmitWordCheck(RegExpMacroAssembler* assembler, Label* word,
2094 if (assembler->CheckSpecialCharacterClass(
2101 assembler->CheckCharacterGT('z', non_word);
2102 assembler->CheckCharacterLT('0', non_word);
2103 assembler->CheckCharacterGT('a' - 1, word);
2104 assembler->CheckCharacterLT('9' + 1, word);
2105 assembler->CheckCharacterLT('A', non_word);
2106 assembler->CheckCharacterLT('Z' + 1, word);
2108 assembler->CheckNotCharacter('_', non_word);
2110 assembler->CheckCharacter('_', word);
2117 RegExpMacroAssembler* assembler = compiler->macro_assembler();
2134 assembler->CheckAtStart(new_trace.cp_offset(), &ok);
2140 assembler->LoadCurrentCharacter(new_trace.cp_offset() - 1,
2142 if (!assembler->CheckSpecialCharacterClass(
2146 assembler->CheckCharacterAfterAnd(0x2028, 0xFFFE, &ok);
2148 assembler->CheckCharacter('\n', &ok);
2149 assembler->CheckNotCharacter('\r', new_trace.backtrack());
2151 assembler->Bind(&ok);
2159 RegExpMacroAssembler* assembler = compiler->macro_assembler();
2160 Isolate* isolate = assembler->isolate();
2184 assembler->LoadCurrentCharacter(trace->cp_offset(), &before_non_word);
2187 EmitWordCheck(assembler, &before_word, &before_non_word, false);
2189 assembler->Bind(&before_non_word);
2192 assembler->GoTo(&ok);
2194 assembler->Bind(&before_word);
2196 assembler->Bind(&ok);
2208 RegExpMacroAssembler* assembler = compiler->macro_assembler();
2228 assembler->CheckAtStart(new_trace.cp_offset(), non_word);
2234 assembler->LoadCurrentCharacter(new_trace.cp_offset() - 1, non_word,
2236 EmitWordCheck(assembler, word, non_word, backtrack_if_previous == kIsNonWord);
2238 assembler->Bind(&fall_through);
2254 RegExpMacroAssembler* assembler = compiler->macro_assembler();
2258 assembler->CheckPosition(trace->cp_offset(), &ok);
2259 assembler->GoTo(trace->backtrack());
2260 assembler->Bind(&ok);
2265 assembler->GoTo(trace->backtrack());
2269 assembler->CheckNotAtStart(trace->cp_offset(), trace->backtrack());
2336 RegExpMacroAssembler* assembler = compiler->macro_assembler();
2337 Isolate* isolate = assembler->isolate();
2366 assembler->GoTo(backtrack);
2397 EmitCharClass(assembler, cc, one_byte, backtrack, cp_offset,
3348 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3394 assembler->WriteCurrentPositionToRegister(
3396 assembler->WriteStackPointerToRegister(
3410 assembler->GoTo(trace->backtrack());
3423 assembler->IfRegisterLT(rep_reg, limit, &skip_empty_check);
3427 assembler->IfRegisterEqPos(data_.u_empty_match_check.start_register,
3429 assembler->Bind(&skip_empty_check);
3439 assembler->ReadCurrentPositionFromRegister(
3441 assembler->ReadStackPointerFromRegister(
3454 assembler->Bind(&clear_registers_backtrack);
3456 assembler->ClearRegisters(clear_registers_from, clear_registers_to);
3459 assembler->Backtrack();
3468 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3483 assembler->CheckNotBackReferenceIgnoreCase(start_reg_, read_backward(),
3486 assembler->CheckNotBackReference(start_reg_, read_backward(),
3494 assembler->CheckNotInSurrogatePair(trace->cp_offset(), trace->backtrack());