Home | History | Annotate | Download | only in src

Lines Matching full:assembler

17 #include "src/regexp-macro-assembler.h"
18 #include "src/regexp-macro-assembler-irregexp.h"
19 #include "src/regexp-macro-assembler-tracer.h"
26 #include "src/ia32/regexp-macro-assembler-ia32.h" // NOLINT
28 #include "src/x64/regexp-macro-assembler-x64.h" // NOLINT
30 #include "src/arm64/regexp-macro-assembler-arm64.h" // NOLINT
32 #include "src/arm/regexp-macro-assembler-arm.h" // NOLINT
34 #include "src/mips/regexp-macro-assembler-mips.h" // NOLINT
36 #include "src/mips64/regexp-macro-assembler-mips64.h" // NOLINT
38 #include "src/x87/regexp-macro-assembler-x87.h" // NOLINT
961 // regexp macro assembler).
1006 RegExpEngine::CompilationResult Assemble(RegExpMacroAssembler* assembler,
1202 void Trace::RestoreAffectedRegisters(RegExpMacroAssembler* assembler,
1208 assembler->PopRegister(reg);
1214 assembler->ClearRegisters(reg, clear_to);
1220 void Trace::PerformDeferredActions(RegExpMacroAssembler* assembler,
1227 const int push_limit = (assembler->stack_limit_slack() + 1) / 2;
1330 assembler->PushRegister(reg, stack_check);
1338 assembler->WriteCurrentPositionToRegister(reg, store_position);
1340 assembler->ClearRegisters(reg, reg);
1342 assembler->SetRegister(reg, value);
1344 assembler->AdvanceRegister(reg, value);
1354 RegExpMacroAssembler* assembler = compiler->macro_assembler();
1362 if (cp_offset_ != 0) assembler->AdvanceCurrentPosition(cp_offset_);
1376 assembler->PushCurrentPosition();
1383 PerformDeferredActions(assembler,
1390 assembler->AdvanceCurrentPosition(cp_offset_);
1395 assembler->PushBacktrack(&undo);
1400 assembler->Bind(&undo);
1401 RestoreAffectedRegisters(assembler,
1406 assembler->Backtrack();
1408 assembler->PopCurrentPosition();
1409 assembler->GoTo(backtrack());
1415 RegExpMacroAssembler* assembler = compiler->macro_assembler();
1422 assembler->Bind(label());
1427 assembler->ReadCurrentPositionFromRegister(current_position_register_);
1428 assembler->ReadStackPointerFromRegister(stack_pointer_register_);
1433 assembler->ClearRegisters(clear_capture_start_, clear_capture_end);
1437 assembler->Backtrack();
1446 RegExpMacroAssembler* assembler = compiler->macro_assembler();
1448 assembler->Bind(label());
1452 assembler->Succeed();
1455 assembler->GoTo(trace->backtrack());
1620 RegExpMacroAssembler* assembler = compiler->macro_assembler();
1623 assembler->LoadCurrentCharacter(
1629 assembler->CheckNotCharacter(c, on_failure);
2462 RegExpMacroAssembler* assembler = compiler->macro_assembler();
2470 assembler->LoadCurrentCharacter(trace->cp_offset(),
2504 assembler->CheckCharacterAfterAnd(value, mask, on_possible_success);
2506 assembler->CheckCharacter(value, on_possible_success);
2510 assembler->CheckNotCharacterAfterAnd(value, mask, trace->backtrack());
2512 assembler->CheckNotCharacter(value, trace->backtrack());
2986 static void EmitWordCheck(RegExpMacroAssembler* assembler,
2990 if (assembler->CheckSpecialCharacterClass(
2996 assembler->CheckCharacterGT('z', non_word);
2997 assembler->CheckCharacterLT('0', non_word);
2998 assembler->CheckCharacterGT('a' - 1, word);
2999 assembler->CheckCharacterLT('9' + 1, word);
3000 assembler->CheckCharacterLT('A', non_word);
3001 assembler->CheckCharacterLT('Z' + 1, word);
3003 assembler->CheckNotCharacter('_', non_word);
3005 assembler->CheckCharacter('_', word);
3015 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3025 assembler->CheckAtStart(&ok);
3029 assembler->LoadCurrentCharacter(new_trace.cp_offset() -1,
3032 if (!assembler->CheckSpecialCharacterClass('n',
3036 assembler->CheckCharacterAfterAnd(0x2028, 0xfffe, &ok);
3038 assembler->CheckCharacter('\n', &ok);
3039 assembler->CheckNotCharacter('\r', new_trace.backtrack());
3041 assembler->Bind(&ok);
3048 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3076 assembler->LoadCurrentCharacter(trace->cp_offset(), &before_non_word);
3079 EmitWordCheck(assembler, &before_word, &before_non_word, false);
3081 assembler->Bind(&before_non_word);
3084 assembler->GoTo(&ok);
3086 assembler->Bind(&before_word);
3088 assembler->Bind(&ok);
3102 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3118 assembler->CheckAtStart(non_word);
3122 assembler->LoadCurrentCharacter(new_trace.cp_offset() - 1, &dummy, false);
3123 EmitWordCheck(assembler, word, non_word, backtrack_if_previous == kIsNonWord);
3125 assembler->Bind(&fall_through);
3146 assembler = compiler->macro_assembler();
3150 assembler->CheckPosition(trace->cp_offset(), &ok);
3151 assembler->GoTo(trace->backtrack());
3152 assembler->Bind(&ok);
3157 assembler->GoTo(trace->backtrack());
3161 assembler->CheckNotAtStart(trace->backtrack());
3231 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3232 Isolate* isolate = assembler->zone()->isolate();
3250 assembler->GoTo(backtrack);
3283 EmitCharClass(assembler, cc, one_byte, backtrack, cp_offset,
4235 RegExpMacroAssembler* assembler = compiler->macro_assembler();
4282 assembler->WriteCurrentPositionToRegister(
4284 assembler->WriteStackPointerToRegister(
4298 assembler->GoTo(trace->backtrack());
4311 assembler->IfRegisterLT(rep_reg, limit, &skip_empty_check);
4315 assembler->IfRegisterEqPos(data_.u_empty_match_check.start_register,
4317 assembler->Bind(&skip_empty_check);
4327 assembler->ReadCurrentPositionFromRegister(
4329 assembler->ReadStackPointerFromRegister(
4342 assembler->Bind(&clear_registers_backtrack);
4344 assembler->ClearRegisters(clear_registers_from, clear_registers_to);
4347 assembler->Backtrack();
4357 RegExpMacroAssembler* assembler = compiler->macro_assembler();
4371 assembler->CheckNotBackReferenceIgnoreCase(start_reg_,
4374 assembler->CheckNotBackReference(start_reg_, trace->backtrack());
6106 // Create the correct assembler for the architecture.
6145 // Inserted here, instead of in Assembler, because it depends on information