Lines Matching refs:assembler
42 #include "regexp-macro-assembler.h"
43 #include "regexp-macro-assembler-tracer.h"
44 #include "regexp-macro-assembler-irregexp.h"
49 #include "ia32/regexp-macro-assembler-ia32.h"
51 #include "x64/regexp-macro-assembler-x64.h"
53 #include "arm/regexp-macro-assembler-arm.h"
55 #include "mips/regexp-macro-assembler-mips.h"
983 // regexp macro assembler).
1028 RegExpEngine::CompilationResult Assemble(RegExpMacroAssembler* assembler,
1224 void Trace::RestoreAffectedRegisters(RegExpMacroAssembler* assembler,
1229 if (registers_to_pop.Get(reg)) assembler->PopRegister(reg);
1235 assembler->ClearRegisters(reg, clear_to);
1241 void Trace::PerformDeferredActions(RegExpMacroAssembler* assembler,
1248 const int push_limit = (assembler->stack_limit_slack() + 1) / 2;
1351 assembler->PushRegister(reg, stack_check);
1359 assembler->WriteCurrentPositionToRegister(reg, store_position);
1361 assembler->ClearRegisters(reg, reg);
1363 assembler->SetRegister(reg, value);
1365 assembler->AdvanceRegister(reg, value);
1375 RegExpMacroAssembler* assembler = compiler->macro_assembler();
1383 if (cp_offset_ != 0) assembler->AdvanceCurrentPosition(cp_offset_);
1397 assembler->PushCurrentPosition();
1404 PerformDeferredActions(assembler,
1411 assembler->AdvanceCurrentPosition(cp_offset_);
1416 assembler->PushBacktrack(&undo);
1421 assembler->Bind(&undo);
1422 RestoreAffectedRegisters(assembler,
1427 assembler->Backtrack();
1429 assembler->PopCurrentPosition();
1430 assembler->GoTo(backtrack());
1436 RegExpMacroAssembler* assembler = compiler->macro_assembler();
1443 assembler->Bind(label());
1448 assembler->ReadCurrentPositionFromRegister(current_position_register_);
1449 assembler->ReadStackPointerFromRegister(stack_pointer_register_);
1454 assembler->ClearRegisters(clear_capture_start_, clear_capture_end);
1458 assembler->Backtrack();
1467 RegExpMacroAssembler* assembler = compiler->macro_assembler();
1469 assembler->Bind(label());
1473 assembler->Succeed();
1476 assembler->GoTo(trace->backtrack());
1639 RegExpMacroAssembler* assembler = compiler->macro_assembler();
1642 assembler->LoadCurrentCharacter(
1648 assembler->CheckNotCharacter(c, on_failure);
2489 RegExpMacroAssembler* assembler = compiler->macro_assembler();
2492 assembler->LoadCurrentCharacter(trace->cp_offset(),
2526 assembler->CheckCharacterAfterAnd(value, mask, on_possible_success);
2528 assembler->CheckCharacter(value, on_possible_success);
2532 assembler->CheckNotCharacterAfterAnd(value, mask, trace->backtrack());
2534 assembler->CheckNotCharacter(value, trace->backtrack());
3006 static void EmitWordCheck(RegExpMacroAssembler* assembler,
3010 if (assembler->CheckSpecialCharacterClass(
3016 assembler->CheckCharacterGT('z', non_word);
3017 assembler->CheckCharacterLT('0', non_word);
3018 assembler->CheckCharacterGT('a' - 1, word);
3019 assembler->CheckCharacterLT('9' + 1, word);
3020 assembler->CheckCharacterLT('A', non_word);
3021 assembler->CheckCharacterLT('Z' + 1, word);
3023 assembler->CheckNotCharacter('_', non_word);
3025 assembler->CheckCharacter('_', word);
3035 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3045 assembler->CheckAtStart(&ok);
3049 assembler->LoadCurrentCharacter(new_trace.cp_offset() -1,
3052 if (!assembler->CheckSpecialCharacterClass('n',
3056 assembler->CheckCharacterAfterAnd(0x2028, 0xfffe, &ok);
3058 assembler->CheckCharacter('\n', &ok);
3059 assembler->CheckNotCharacter('\r', new_trace.backtrack());
3061 assembler->Bind(&ok);
3068 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3096 assembler->LoadCurrentCharacter(trace->cp_offset(), &before_non_word);
3099 EmitWordCheck(assembler, &before_word, &before_non_word, false);
3101 assembler->Bind(&before_non_word);
3104 assembler->GoTo(&ok);
3106 assembler->Bind(&before_word);
3108 assembler->Bind(&ok);
3122 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3138 assembler->CheckAtStart(non_word);
3142 assembler
3143 EmitWordCheck(assembler, word, non_word, backtrack_if_previous == kIsNonWord);
3145 assembler->Bind(&fall_through);
3166 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3170 assembler->CheckPosition(trace->cp_offset(), &ok);
3171 assembler->GoTo(trace->backtrack());
3172 assembler->Bind(&ok);
3177 assembler->GoTo(trace->backtrack());
3181 assembler->CheckNotAtStart(trace->backtrack());
3251 RegExpMacroAssembler* assembler = compiler->macro_assembler();
3252 Isolate* isolate = assembler->zone()->isolate();
3270 assembler->GoTo(backtrack);
3303 EmitCharClass(assembler,
4186 RegExpMacroAssembler* assembler = compiler->macro_assembler();
4233 assembler->WriteCurrentPositionToRegister(
4235 assembler->WriteStackPointerToRegister(
4249 assembler->GoTo(trace->backtrack());
4262 assembler->IfRegisterLT(rep_reg, limit, &skip_empty_check);
4266 assembler->IfRegisterEqPos(data_.u_empty_match_check.start_register,
4268 assembler->Bind(&skip_empty_check);
4278 assembler->ReadCurrentPositionFromRegister(
4280 assembler->ReadStackPointerFromRegister(
4293 assembler->Bind(&clear_registers_backtrack);
4295 assembler->ClearRegisters(clear_registers_from, clear_registers_to);
4298 assembler->Backtrack();
4308 RegExpMacroAssembler* assembler = compiler->macro_assembler();
4322 assembler->CheckNotBackReferenceIgnoreCase(start_reg_,
4325 assembler->CheckNotBackReference(start_reg_, trace->backtrack());
6071 // Create the correct assembler for the architecture.
6099 // Inserted here, instead of in Assembler, because it depends on information