• Home
  • Raw
  • Download

Lines Matching refs:__

97 #define __ ACCESS_MASM(masm_)  macro
112 __ jmp(&entry_label_); // We'll write the entry code later. in RegExpMacroAssemblerIA32()
113 __ bind(&start_label_); // And then continue from here. in RegExpMacroAssemblerIA32()
137 __ add(edi, Immediate(by * char_size())); in AdvanceCurrentPosition()
146 __ add(register_location(reg), Immediate(by)); in AdvanceRegister()
155 __ add(ebx, Immediate(masm_->CodeObject())); in Backtrack()
156 __ jmp(ebx); in Backtrack()
161 __ bind(label); in Bind()
166 __ cmp(current_character(), c); in CheckCharacter()
172 __ cmp(current_character(), limit); in CheckCharacterGT()
180 __ cmp(Operand(ebp, kStartIndex), Immediate(0)); in CheckAtStart()
183 __ lea(eax, Operand(esi, edi, times_1, 0)); in CheckAtStart()
184 __ cmp(eax, Operand(ebp, kInputStart)); in CheckAtStart()
186 __ bind(&not_at_start); in CheckAtStart()
192 __ cmp(Operand(ebp, kStartIndex), Immediate(0)); in CheckNotAtStart()
195 __ lea(eax, Operand(esi, edi, times_1, 0)); in CheckNotAtStart()
196 __ cmp(eax, Operand(ebp, kInputStart)); in CheckNotAtStart()
202 __ cmp(current_character(), limit); in CheckCharacterLT()
222 __ cmp(edi, Immediate(-(byte_offset + byte_length))); in CheckCharacters()
237 __ cmpb(Operand(esi, edi, times_1, byte_offset), in CheckCharacters()
242 __ movzx_w(eax, in CheckCharacters()
244 __ cmp(eax, static_cast<int32_t>(str[0])); in CheckCharacters()
248 __ lea(ebx, Operand(esi, edi, times_1, 0)); in CheckCharacters()
257 __ cmp(Operand(ebx, byte_offset + i), Immediate(combined_chars)); in CheckCharacters()
260 __ cmpb(Operand(ebx, byte_offset + i), in CheckCharacters()
267 __ cmp(Operand(ebx, byte_offset + i * sizeof(uc16)), in CheckCharacters()
276 __ movzx_w(eax, in CheckCharacters()
278 __ cmp(eax, static_cast<int32_t>(str[i])); in CheckCharacters()
289 __ cmp(edi, Operand(backtrack_stackpointer(), 0)); in CheckGreedyLoop()
290 __ j(not_equal, &fallthrough); in CheckGreedyLoop()
291 __ add(backtrack_stackpointer(), Immediate(kPointerSize)); // Pop. in CheckGreedyLoop()
293 __ bind(&fallthrough); in CheckGreedyLoop()
301 __ mov(edx, register_location(start_reg)); // Index of start of capture in CheckNotBackReferenceIgnoreCase()
302 __ mov(ebx, register_location(start_reg + 1)); // Index of end of capture in CheckNotBackReferenceIgnoreCase()
303 __ sub(ebx, edx); // Length of capture. in CheckNotBackReferenceIgnoreCase()
312 __ j(equal, &fallthrough); in CheckNotBackReferenceIgnoreCase()
319 __ push(edi); in CheckNotBackReferenceIgnoreCase()
320 __ push(backtrack_stackpointer()); in CheckNotBackReferenceIgnoreCase()
323 __ add(edx, esi); // Start of capture in CheckNotBackReferenceIgnoreCase()
324 __ add(edi, esi); // Start of text to match against capture. in CheckNotBackReferenceIgnoreCase()
325 __ add(ebx, edi); // End of text to match against capture. in CheckNotBackReferenceIgnoreCase()
328 __ bind(&loop); in CheckNotBackReferenceIgnoreCase()
329 __ movzx_b(eax, Operand(edi, 0)); in CheckNotBackReferenceIgnoreCase()
330 __ cmpb_al(Operand(edx, 0)); in CheckNotBackReferenceIgnoreCase()
331 __ j(equal, &loop_increment); in CheckNotBackReferenceIgnoreCase()
334 __ or_(eax, 0x20); // Convert match character to lower-case. in CheckNotBackReferenceIgnoreCase()
335 __ lea(ecx, Operand(eax, -'a')); in CheckNotBackReferenceIgnoreCase()
336 __ cmp(ecx, static_cast<int32_t>('z' - 'a')); // Is eax a lowercase letter? in CheckNotBackReferenceIgnoreCase()
337 __ j(above, &fail); in CheckNotBackReferenceIgnoreCase()
339 __ movzx_b(ecx, Operand(edx, 0)); in CheckNotBackReferenceIgnoreCase()
340 __ or_(ecx, 0x20); in CheckNotBackReferenceIgnoreCase()
342 __ cmp(eax, ecx); in CheckNotBackReferenceIgnoreCase()
343 __ j(not_equal, &fail); in CheckNotBackReferenceIgnoreCase()
345 __ bind(&loop_increment); in CheckNotBackReferenceIgnoreCase()
347 __ add(edx, Immediate(1)); in CheckNotBackReferenceIgnoreCase()
348 __ add(edi, Immediate(1)); in CheckNotBackReferenceIgnoreCase()
350 __ cmp(edi, ebx); in CheckNotBackReferenceIgnoreCase()
351 __ j(below, &loop); in CheckNotBackReferenceIgnoreCase()
352 __ jmp(&success); in CheckNotBackReferenceIgnoreCase()
354 __ bind(&fail); in CheckNotBackReferenceIgnoreCase()
356 __ pop(backtrack_stackpointer()); in CheckNotBackReferenceIgnoreCase()
357 __ pop(edi); in CheckNotBackReferenceIgnoreCase()
360 __ bind(&success); in CheckNotBackReferenceIgnoreCase()
362 __ pop(backtrack_stackpointer()); in CheckNotBackReferenceIgnoreCase()
364 __ add(esp, Immediate(kPointerSize)); in CheckNotBackReferenceIgnoreCase()
366 __ sub(edi, esi); in CheckNotBackReferenceIgnoreCase()
370 __ push(esi); in CheckNotBackReferenceIgnoreCase()
371 __ push(edi); in CheckNotBackReferenceIgnoreCase()
372 __ push(backtrack_stackpointer()); in CheckNotBackReferenceIgnoreCase()
373 __ push(ebx); in CheckNotBackReferenceIgnoreCase()
376 __ PrepareCallCFunction(argument_count, ecx); in CheckNotBackReferenceIgnoreCase()
385 __ mov(Operand(esp, 3 * kPointerSize), in CheckNotBackReferenceIgnoreCase()
388 __ mov(Operand(esp, 2 * kPointerSize), ebx); in CheckNotBackReferenceIgnoreCase()
392 __ add(edi, esi); in CheckNotBackReferenceIgnoreCase()
393 __ mov(Operand(esp, 1 * kPointerSize), edi); in CheckNotBackReferenceIgnoreCase()
396 __ add(edx, esi); in CheckNotBackReferenceIgnoreCase()
397 __ mov(Operand(esp, 0 * kPointerSize), edx); in CheckNotBackReferenceIgnoreCase()
403 __ CallCFunction(compare, argument_count); in CheckNotBackReferenceIgnoreCase()
406 __ pop(ebx); in CheckNotBackReferenceIgnoreCase()
407 __ pop(backtrack_stackpointer()); in CheckNotBackReferenceIgnoreCase()
408 __ pop(edi); in CheckNotBackReferenceIgnoreCase()
409 __ pop(esi); in CheckNotBackReferenceIgnoreCase()
412 __ or_(eax, eax); in CheckNotBackReferenceIgnoreCase()
415 __ add(edi, ebx); in CheckNotBackReferenceIgnoreCase()
417 __ bind(&fallthrough); in CheckNotBackReferenceIgnoreCase()
429 __ mov(edx, register_location(start_reg)); in CheckNotBackReference()
430 __ mov(eax, register_location(start_reg + 1)); in CheckNotBackReference()
431 __ sub(eax, edx); // Length to check. in CheckNotBackReference()
435 __ j(equal, &fallthrough); in CheckNotBackReference()
438 __ mov(ebx, edi); in CheckNotBackReference()
439 __ add(ebx, eax); in CheckNotBackReference()
443 __ push(backtrack_stackpointer()); in CheckNotBackReference()
446 __ lea(ebx, Operand(esi, edi, times_1, 0)); // Start of match. in CheckNotBackReference()
447 __ add(edx, esi); // Start of capture. in CheckNotBackReference()
448 __ lea(ecx, Operand(eax, ebx, times_1, 0)); // End of match in CheckNotBackReference()
451 __ bind(&loop); in CheckNotBackReference()
453 __ movzx_b(eax, Operand(edx, 0)); in CheckNotBackReference()
454 __ cmpb_al(Operand(ebx, 0)); in CheckNotBackReference()
457 __ movzx_w(eax, Operand(edx, 0)); in CheckNotBackReference()
458 __ cmpw_ax(Operand(ebx, 0)); in CheckNotBackReference()
460 __ j(not_equal, &fail); in CheckNotBackReference()
462 __ add(edx, Immediate(char_size())); in CheckNotBackReference()
463 __ add(ebx, Immediate(char_size())); in CheckNotBackReference()
465 __ cmp(ebx, ecx); in CheckNotBackReference()
466 __ j(below, &loop); in CheckNotBackReference()
467 __ jmp(&success); in CheckNotBackReference()
469 __ bind(&fail); in CheckNotBackReference()
471 __ pop(backtrack_stackpointer()); in CheckNotBackReference()
474 __ bind(&success); in CheckNotBackReference()
476 __ mov(edi, ecx); in CheckNotBackReference()
477 __ sub(edi, esi); in CheckNotBackReference()
479 __ pop(backtrack_stackpointer()); in CheckNotBackReference()
481 __ bind(&fallthrough); in CheckNotBackReference()
488 __ mov(eax, register_location(reg1)); in CheckNotRegistersEqual()
489 __ cmp(eax, register_location(reg2)); in CheckNotRegistersEqual()
496 __ cmp(current_character(), c); in CheckNotCharacter()
504 __ mov(eax, current_character()); in CheckCharacterAfterAnd()
505 __ and_(eax, mask); in CheckCharacterAfterAnd()
506 __ cmp(eax, c); in CheckCharacterAfterAnd()
514 __ mov(eax, current_character()); in CheckNotCharacterAfterAnd()
515 __ and_(eax, mask); in CheckNotCharacterAfterAnd()
516 __ cmp(eax, c); in CheckNotCharacterAfterAnd()
527 __ lea(eax, Operand(current_character(), -minus)); in CheckNotCharacterAfterMinusAnd()
528 __ and_(eax, mask); in CheckNotCharacterAfterMinusAnd()
529 __ cmp(eax, c); in CheckNotCharacterAfterMinusAnd()
544 __ cmp(current_character(), ' '); in CheckSpecialCharacterClass()
545 __ j(equal, &success); in CheckSpecialCharacterClass()
547 __ lea(eax, Operand(current_character(), -'\t')); in CheckSpecialCharacterClass()
548 __ cmp(eax, '\r' - '\t'); in CheckSpecialCharacterClass()
550 __ bind(&success); in CheckSpecialCharacterClass()
558 __ cmp(current_character(), ' '); in CheckSpecialCharacterClass()
560 __ lea(eax, Operand(current_character(), -'\t')); in CheckSpecialCharacterClass()
561 __ cmp(eax, '\r' - '\t'); in CheckSpecialCharacterClass()
568 __ lea(eax, Operand(current_character(), -'0')); in CheckSpecialCharacterClass()
569 __ cmp(eax, '9' - '0'); in CheckSpecialCharacterClass()
574 __ lea(eax, Operand(current_character(), -'0')); in CheckSpecialCharacterClass()
575 __ cmp(eax, '9' - '0'); in CheckSpecialCharacterClass()
580 __ mov(eax, current_character()); in CheckSpecialCharacterClass()
581 __ xor_(eax, Immediate(0x01)); in CheckSpecialCharacterClass()
583 __ sub(eax, Immediate(0x0b)); in CheckSpecialCharacterClass()
584 __ cmp(eax, 0x0c - 0x0b); in CheckSpecialCharacterClass()
590 __ sub(eax, Immediate(0x2028 - 0x0b)); in CheckSpecialCharacterClass()
591 __ cmp(eax, 0x2029 - 0x2028); in CheckSpecialCharacterClass()
599 __ cmp(current_character(), Immediate('z')); in CheckSpecialCharacterClass()
604 __ test_b(current_character(), in CheckSpecialCharacterClass()
613 __ cmp(current_character(), Immediate('z')); in CheckSpecialCharacterClass()
614 __ j(above, &done); in CheckSpecialCharacterClass()
618 __ test_b(current_character(), in CheckSpecialCharacterClass()
622 __ bind(&done); in CheckSpecialCharacterClass()
633 __ mov(eax, current_character()); in CheckSpecialCharacterClass()
634 __ xor_(eax, Immediate(0x01)); in CheckSpecialCharacterClass()
636 __ sub(eax, Immediate(0x0b)); in CheckSpecialCharacterClass()
637 __ cmp(eax, 0x0c - 0x0b); in CheckSpecialCharacterClass()
647 __ sub(eax, Immediate(0x2028 - 0x0b)); in CheckSpecialCharacterClass()
648 __ cmp(eax, 1); in CheckSpecialCharacterClass()
650 __ bind(&done); in CheckSpecialCharacterClass()
663 __ Set(eax, Immediate(0)); in Fail()
664 __ jmp(&exit_label_); in Fail()
673 __ bind(&entry_label_); in GetCode()
680 __ push(ebp); in GetCode()
681 __ mov(ebp, esp); in GetCode()
684 __ push(esi); in GetCode()
685 __ push(edi); in GetCode()
686 __ push(ebx); // Callee-save on MacOS. in GetCode()
687 __ push(Immediate(0)); // Make room for "input start - 1" constant. in GetCode()
695 __ mov(ecx, esp); in GetCode()
696 __ sub(ecx, Operand::StaticVariable(stack_limit)); in GetCode()
698 __ j(below_equal, &stack_limit_hit); in GetCode()
701 __ cmp(ecx, num_registers_ * kPointerSize); in GetCode()
702 __ j(above_equal, &stack_ok); in GetCode()
705 __ mov(eax, EXCEPTION); in GetCode()
706 __ jmp(&exit_label_); in GetCode()
708 __ bind(&stack_limit_hit); in GetCode()
710 __ or_(eax, eax); in GetCode()
712 __ j(not_zero, &exit_label_); in GetCode()
714 __ bind(&stack_ok); in GetCode()
716 __ mov(ebx, Operand(ebp, kStartIndex)); in GetCode()
719 __ sub(esp, Immediate(num_registers_ * kPointerSize)); in GetCode()
721 __ mov(esi, Operand(ebp, kInputEnd)); in GetCode()
723 __ mov(edi, Operand(ebp, kInputStart)); in GetCode()
725 __ sub(edi, esi); in GetCode()
729 __ neg(ebx); in GetCode()
731 __ lea(eax, Operand(edi, ebx, times_2, -char_size())); in GetCode()
733 __ lea(eax, Operand(edi, ebx, times_1, -char_size())); in GetCode()
737 __ mov(Operand(ebp, kInputStartMinusOne), eax); in GetCode()
743 __ mov(ecx, kRegisterZero); in GetCode()
745 __ bind(&init_loop); in GetCode()
746 __ mov(Operand(ebp, ecx, times_1, +0), eax); in GetCode()
747 __ sub(ecx, Immediate(kPointerSize)); in GetCode()
748 __ cmp(ecx, kRegisterZero - num_saved_registers_ * kPointerSize); in GetCode()
749 __ j(greater, &init_loop); in GetCode()
758 __ mov(register_location(i), eax); // One write every page. in GetCode()
763 __ mov(backtrack_stackpointer(), Operand(ebp, kStackHighEnd)); in GetCode()
766 __ cmp(Operand(ebp, kStartIndex), Immediate(0)); in GetCode()
767 __ j(equal, &at_start); in GetCode()
769 __ jmp(&start_label_); in GetCode()
770 __ bind(&at_start); in GetCode()
771 __ mov(current_character(), '\n'); in GetCode()
772 __ jmp(&start_label_); in GetCode()
778 __ bind(&success_label_); in GetCode()
781 __ mov(ebx, Operand(ebp, kRegisterOutput)); in GetCode()
782 __ mov(ecx, Operand(ebp, kInputEnd)); in GetCode()
783 __ mov(edx, Operand(ebp, kStartIndex)); in GetCode()
784 __ sub(ecx, Operand(ebp, kInputStart)); in GetCode()
786 __ lea(ecx, Operand(ecx, edx, times_2, 0)); in GetCode()
788 __ add(ecx, edx); in GetCode()
791 __ mov(eax, register_location(i)); in GetCode()
793 __ add(eax, ecx); in GetCode()
795 __ sar(eax, 1); // Convert byte index to character index. in GetCode()
797 __ mov(Operand(ebx, i * kPointerSize), eax); in GetCode()
800 __ mov(eax, Immediate(SUCCESS)); in GetCode()
803 __ bind(&exit_label_); in GetCode()
805 __ lea(esp, Operand(ebp, kBackup_ebx)); in GetCode()
807 __ pop(ebx); in GetCode()
808 __ pop(edi); in GetCode()
809 __ pop(esi); in GetCode()
811 __ pop(ebp); in GetCode()
812 __ ret(0); in GetCode()
816 __ bind(&backtrack_label_); in GetCode()
826 __ push(backtrack_stackpointer()); in GetCode()
827 __ push(edi); in GetCode()
830 __ or_(eax, eax); in GetCode()
833 __ j(not_zero, &exit_label_); in GetCode()
835 __ pop(edi); in GetCode()
836 __ pop(backtrack_stackpointer()); in GetCode()
838 __ mov(esi, Operand(ebp, kInputEnd)); in GetCode()
849 __ push(esi); in GetCode()
850 __ push(edi); in GetCode()
854 __ PrepareCallCFunction(num_arguments, ebx); in GetCode()
855 __ mov(Operand(esp, 2 * kPointerSize), in GetCode()
857 __ lea(eax, Operand(ebp, kStackHighEnd)); in GetCode()
858 __ mov(Operand(esp, 1 * kPointerSize), eax); in GetCode()
859 __ mov(Operand(esp, 0 * kPointerSize), backtrack_stackpointer()); in GetCode()
862 __ CallCFunction(grow_stack, num_arguments); in GetCode()
865 __ or_(eax, eax); in GetCode()
866 __ j(equal, &exit_with_exception); in GetCode()
868 __ mov(backtrack_stackpointer(), eax); in GetCode()
870 __ pop(edi); in GetCode()
871 __ pop(esi); in GetCode()
877 __ bind(&exit_with_exception); in GetCode()
879 __ mov(eax, EXCEPTION); in GetCode()
880 __ jmp(&exit_label_); in GetCode()
902 __ cmp(register_location(reg), Immediate(comparand)); in IfRegisterGE()
910 __ cmp(register_location(reg), Immediate(comparand)); in IfRegisterLT()
917 __ cmp(edi, register_location(reg)); in IfRegisterEqPos()
948 __ mov(register_location(register_index), eax); in PopRegister()
965 __ mov(eax, register_location(register_index)); in PushRegister()
972 __ mov(edi, register_location(reg)); in ReadCurrentPositionFromRegister()
977 __ mov(backtrack_stackpointer(), register_location(reg)); in ReadStackPointerFromRegister()
978 __ add(backtrack_stackpointer(), Operand(ebp, kStackHighEnd)); in ReadStackPointerFromRegister()
983 __ cmp(edi, -by * char_size()); in SetCurrentPositionFromEnd()
984 __ j(greater_equal, &after_position, Label::kNear); in SetCurrentPositionFromEnd()
985 __ mov(edi, -by * char_size()); in SetCurrentPositionFromEnd()
990 __ bind(&after_position); in SetCurrentPositionFromEnd()
995 __ mov(register_location(register_index), Immediate(to)); in SetRegister()
1000 __ jmp(&success_label_); in Succeed()
1007 __ mov(register_location(reg), edi); in WriteCurrentPositionToRegister()
1009 __ lea(eax, Operand(edi, cp_offset * char_size())); in WriteCurrentPositionToRegister()
1010 __ mov(register_location(reg), eax); in WriteCurrentPositionToRegister()
1017 __ mov(eax, Operand(ebp, kInputStartMinusOne)); in ClearRegisters()
1019 __ mov(register_location(reg), eax); in ClearRegisters()
1025 __ mov(eax, backtrack_stackpointer()); in WriteStackPointerToRegister()
1026 __ sub(eax, Operand(ebp, kStackHighEnd)); in WriteStackPointerToRegister()
1027 __ mov(register_location(reg), eax); in WriteStackPointerToRegister()
1035 __ PrepareCallCFunction(num_arguments, scratch); in CallCheckStackGuardState()
1037 __ mov(Operand(esp, 2 * kPointerSize), ebp); in CallCheckStackGuardState()
1039 __ mov(Operand(esp, 1 * kPointerSize), Immediate(masm_->CodeObject())); in CallCheckStackGuardState()
1041 __ lea(eax, Operand(esp, -kPointerSize)); in CallCheckStackGuardState()
1042 __ mov(Operand(esp, 0 * kPointerSize), eax); in CallCheckStackGuardState()
1045 __ CallCFunction(check_stack_guard, num_arguments); in CallCheckStackGuardState()
1166 __ cmp(edi, -cp_offset * char_size()); in CheckPosition()
1178 __ jmp(to); in BranchOrBacktrack()
1182 __ j(condition, &backtrack_label_); in BranchOrBacktrack()
1185 __ j(condition, to); in BranchOrBacktrack()
1191 __ push(Immediate::CodeRelativeOffset(&return_to)); in SafeCall()
1192 __ jmp(to); in SafeCall()
1193 __ bind(&return_to); in SafeCall()
1198 __ pop(ebx); in SafeReturn()
1199 __ add(ebx, Immediate(masm_->CodeObject())); in SafeReturn()
1200 __ jmp(ebx); in SafeReturn()
1205 __ bind(name); in SafeCallTarget()
1212 __ sub(backtrack_stackpointer(), Immediate(kPointerSize)); in Push()
1213 __ mov(Operand(backtrack_stackpointer(), 0), source); in Push()
1219 __ sub(backtrack_stackpointer(), Immediate(kPointerSize)); in Push()
1220 __ mov(Operand(backtrack_stackpointer(), 0), value); in Push()
1226 __ mov(target, Operand(backtrack_stackpointer(), 0)); in Pop()
1228 __ add(backtrack_stackpointer(), Immediate(kPointerSize)); in Pop()
1237 __ cmp(esp, Operand::StaticVariable(stack_limit)); in CheckPreemption()
1238 __ j(above, &no_preempt); in CheckPreemption()
1242 __ bind(&no_preempt); in CheckPreemption()
1250 __ cmp(backtrack_stackpointer(), Operand::StaticVariable(stack_limit)); in CheckStackLimit()
1251 __ j(above, &no_stack_overflow); in CheckStackLimit()
1255 __ bind(&no_stack_overflow); in CheckStackLimit()
1263 __ mov(current_character(), Operand(esi, edi, times_1, cp_offset)); in LoadCurrentCharacterUnchecked()
1265 __ movzx_w(current_character(), Operand(esi, edi, times_1, cp_offset)); in LoadCurrentCharacterUnchecked()
1268 __ movzx_b(current_character(), Operand(esi, edi, times_1, cp_offset)); in LoadCurrentCharacterUnchecked()
1273 __ mov(current_character(), in LoadCurrentCharacterUnchecked()
1277 __ movzx_w(current_character(), in LoadCurrentCharacterUnchecked()
1284 #undef __