/[pcre]/code/trunk/pcre_jit_compile.c
ViewVC logotype

Diff of /code/trunk/pcre_jit_compile.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1591 by zherczeg, Tue Aug 11 05:41:09 2015 UTC revision 1592 by zherczeg, Tue Aug 11 13:34:44 2015 UTC
# Line 2243  while (current != NULL) Line 2243  while (current != NULL)
2243      SLJIT_ASSERT_STOP();      SLJIT_ASSERT_STOP();
2244      break;      break;
2245      }      }
2246      SLJIT_ASSERT(current > (sljit_sw*)current[-1]);
2247    current = (sljit_sw*)current[-1];    current = (sljit_sw*)current[-1];
2248    }    }
2249  return -1;  return -1;
# Line 7695  while (*cc != OP_KETRPOS) Line 7696  while (*cc != OP_KETRPOS)
7696        OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);        OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
7697        }        }
7698    
7699        /* Even if the match is empty, we need to reset the control head. */
7700        if (needs_control_head)
7701          OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack));
7702    
7703      if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)      if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)
7704        add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0));        add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0));
7705    
# Line 7722  while (*cc != OP_KETRPOS) Line 7727  while (*cc != OP_KETRPOS)
7727        OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), (framesize + 1) * sizeof(sljit_sw), STR_PTR, 0);        OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), (framesize + 1) * sizeof(sljit_sw), STR_PTR, 0);
7728        }        }
7729    
7730        /* Even if the match is empty, we need to reset the control head. */
7731        if (needs_control_head)
7732          OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack));
7733    
7734      if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)      if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)
7735        add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0));        add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0));
7736    
# Line 7734  while (*cc != OP_KETRPOS) Line 7743  while (*cc != OP_KETRPOS)
7743        }        }
7744      }      }
7745    
   if (needs_control_head)  
     OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack));  
   
7746    JUMPTO(SLJIT_JUMP, loop);    JUMPTO(SLJIT_JUMP, loop);
7747    flush_stubs(common);    flush_stubs(common);
7748    

Legend:
Removed from v.1591  
changed lines
  Added in v.1592

  ViewVC Help
Powered by ViewVC 1.1.5