Home | History | Annotate | Download | only in src

Lines Matching refs:pc

85                              const byte* pc,
95 "pc = %02x, sp = %d, curpos = %d, curchar = %08x (%c), bc = %s" :
96 "pc = %02x, sp = %d, curpos = %d, curchar = %08x .%c., bc = %s";
98 pc - code_base,
105 printf(", %02x", pc[i]);
109 unsigned char b = pc[i];
124 pc, \
136 static int32_t Load32Aligned(const byte* pc) {
137 ASSERT((reinterpret_cast<intptr_t>(pc) & 3) == 0);
138 return *reinterpret_cast<const int32_t *>(pc);
142 static int32_t Load16Aligned(const byte* pc) {
143 ASSERT((reinterpret_cast<intptr_t>(pc) & 1) == 0);
144 return *reinterpret_cast<const uint16_t *>(pc);
196 const byte* pc = code_base;
210 int32_t insn = Load32Aligned(pc);
220 pc += BC_PUSH_CP_LENGTH;
226 *backtrack_sp++ = Load32Aligned(pc + 4);
227 pc += BC_PUSH_BT_LENGTH;
234 pc += BC_PUSH_REGISTER_LENGTH;
237 registers[insn >> BYTECODE_SHIFT] = Load32Aligned(pc + 4);
238 pc += BC_SET_REGISTER_LENGTH;
241 registers[insn >> BYTECODE_SHIFT] += Load32Aligned(pc + 4);
242 pc += BC_ADVANCE_REGISTER_LENGTH;
245 registers[insn >> BYTECODE_SHIFT] = current + Load32Aligned(pc + 4);
246 pc += BC_SET_REGISTER_TO_CP_LENGTH;
250 pc += BC_SET_CP_TO_REGISTER_LENGTH;
255 pc += BC_SET_REGISTER_TO_SP_LENGTH;
261 pc += BC_SET_SP_TO_REGISTER_LENGTH;
267 pc += BC_POP_CP_LENGTH;
272 pc = code_base + *backtrack_sp;
278 pc += BC_POP_REGISTER_LENGTH;
286 pc += BC_ADVANCE_CP_LENGTH;
289 pc = code_base + Load32Aligned(pc + 4);
293 pc = code_base + Load32Aligned(pc + 4);
299 pc = code_base + Load32Aligned(pc + 4);
301 pc += BC_CHECK_GREEDY_LENGTH;
307 pc = code_base + Load32Aligned(pc + 4);
310 pc += BC_LOAD_CURRENT_CHAR_LENGTH;
317 pc += BC_LOAD_CURRENT_CHAR_UNCHECKED_LENGTH;
323 pc = code_base + Load32Aligned(pc + 4);
328 pc += BC_LOAD_2_CURRENT_CHARS_LENGTH;
336 pc += BC_LOAD_2_CURRENT_CHARS_UNCHECKED_LENGTH;
343 pc = code_base + Load32Aligned(pc + 4);
352 pc += BC_LOAD_4_CURRENT_CHARS_LENGTH;
366 pc += BC_LOAD_4_CURRENT_CHARS_UNCHECKED_LENGTH;
370 uint32_t c = Load32Aligned(pc + 4);
372 pc = code_base + Load32Aligned(pc + 8);
374 pc += BC_CHECK_4_CHARS_LENGTH;
381 pc = code_base + Load32Aligned(pc + 4);
383 pc += BC_CHECK_CHAR_LENGTH;
388 uint32_t c = Load32Aligned(pc + 4);
390 pc = code_base + Load32Aligned(pc + 8);
392 pc += BC_CHECK_NOT_4_CHARS_LENGTH;
399 pc = code_base + Load32Aligned(pc + 4);
401 pc += BC_CHECK_NOT_CHAR_LENGTH;
406 uint32_t c = Load32Aligned(pc + 4);
407 if (c == (current_char & Load32Aligned(pc + 8))) {
408 pc = code_base + Load32Aligned(pc + 12);
410 pc += BC_AND_CHECK_4_CHARS_LENGTH;
416 if (c == (current_char & Load32Aligned(pc + 4))) {
417 pc = code_base + Load32Aligned(pc + 8);
419 pc += BC_AND_CHECK_CHAR_LENGTH;
424 uint32_t c = Load32Aligned(pc + 4);
425 if (c != (current_char & Load32Aligned(pc + 8))) {
426 pc = code_base + Load32Aligned(pc + 12);
428 pc += BC_AND_CHECK_NOT_4_CHARS_LENGTH;
434 if (c != (current_char & Load32Aligned(pc + 4))) {
435 pc = code_base + Load32Aligned(pc + 8);
437 pc += BC_AND_CHECK_NOT_CHAR_LENGTH;
443 uint32_t minus = Load16Aligned(pc + 4);
444 uint32_t mask = Load16Aligned(pc + 6);
446 pc = code_base + Load32Aligned(pc + 8);
448 pc += BC_MINUS_AND_CHECK_NOT_CHAR_LENGTH;
455 pc = code_base + Load32Aligned(pc + 4);
457 pc += BC_CHECK_LT_LENGTH;
464 pc = code_base + Load32Aligned(pc + 4);
466 pc += BC_CHECK_GT_LENGTH;
471 if (registers[insn >> BYTECODE_SHIFT] < Load32Aligned(pc + 4)) {
472 pcpc + 8);
474 pc += BC_CHECK_REGISTER_LT_LENGTH;
478 if (registers[insn >> BYTECODE_SHIFT] >= Load32Aligned(pc + 4)) {
479 pc = code_base + Load32Aligned(pc + 8);
481 pc += BC_CHECK_REGISTER_GE_LENGTH;
486 pc = code_base + Load32Aligned(pc + 4);
488 pc += BC_CHECK_REGISTER_EQ_POS_LENGTH;
493 // location at pc + 8. Otherwise fall through!
495 byte map = code_base[Load32Aligned(pc + 4) + (index >> 3)];
498 pc = code_base + Load32Aligned(pc + 8);
500 pc += BC_LOOKUP_MAP1_LENGTH;
506 // the location at pc + 8. If we find 01 then jump to location at
507 // pc + 11, etc.
509 byte map = code_base[Load32Aligned(pc + 3) + (index >> 3)];
513 pc = code_base + Load32Aligned(pc + 8);
515 pc = code_base + Load32Aligned(pc + 12);
519 pc = code_base + Load32Aligned(pc + 16);
521 pc = code_base + Load32Aligned(pc + 20);
530 byte map = code_base[Load32Aligned(pc + 4) + index];
531 const byte* new_pc = code_base + Load32Aligned(pc + 8) + (map << 2);
532 pc = code_base + Load32Aligned(new_pc);
539 byte map = code_base[Load32Aligned(pc + 4) + index];
540 const byte* new_pc = code_base + Load32Aligned(pc + 8) + (map << 2);
541 pc = code_base + Load32Aligned(new_pc);
546 registers[Load32Aligned(pc + 4)]) {
547 pc += BC_CHECK_NOT_REGS_EQUAL_LENGTH;
549 pc = code_base + Load32Aligned(pc + 8);
556 pc += BC_CHECK_NOT_BACK_REF_LENGTH;
560 pc = code_base + Load32Aligned(pc + 4);
566 pc = code_base + Load32Aligned(pc + 4);
573 pc += BC_CHECK_NOT_BACK_REF_LENGTH;
580 pc += BC_CHECK_NOT_BACK_REF_NO_CASE_LENGTH;
584 pc = code_base + Load32Aligned(pc + 4);
590 pc += BC_CHECK_NOT_BACK_REF_NO_CASE_LENGTH;
592 pc = code_base + Load32Aligned(pc + 4);
599 pc = code_base + Load32Aligned(pc + 4);
601 pc += BC_CHECK_AT_START_LENGTH;
606 pc += BC_CHECK_NOT_AT_START_LENGTH;
608 pc = code_base + Load32Aligned(pc + 4);
617 pc += BC_SET_CURRENT_POSITION_FROM_END_LENGTH;