Home | History | Annotate | Download | only in quick

Lines Matching refs:tab_rec

532     Mir2Lir::SwitchTable* tab_rec = iterator.Next();
533 if (tab_rec == NULL) break;
534 AlignBuffer(code_buffer_, tab_rec->offset);
544 DCHECK(tab_rec->anchor->flags.fixup != kFixupNone);
545 bx_offset = tab_rec->anchor->offset + 4;
553 bx_offset = tab_rec->anchor->offset;
560 if (tab_rec->table[0] == Instruction::kSparseSwitchSignature) {
561 const int32_t* keys = reinterpret_cast<const int32_t*>(&(tab_rec->table[2]));
562 for (int elems = 0; elems < tab_rec->table[1]; elems++) {
563 int disp = tab_rec->targets[elems]->offset - bx_offset;
571 tab_rec->targets[elems]->offset - bx_offset);
574 DCHECK_EQ(static_cast<int>(tab_rec->table[0]),
576 for (int elems = 0; elems < tab_rec->table[1]; elems++) {
577 int disp = tab_rec->targets[elems]->offset - bx_offset;
582 Push32(code_buffer_, tab_rec->targets[elems]->offset - bx_offset);
592 Mir2Lir::FillArrayData *tab_rec = iterator.Next();
593 if (tab_rec == NULL) break;
594 AlignBuffer(code_buffer_, tab_rec->offset);
595 for (int i = 0; i < (tab_rec->size + 1) / 2; i++) {
596 code_buffer_.push_back(tab_rec->table[i] & 0xFF);
597 code_buffer_.push_back((tab_rec->table[i] >> 8) & 0xFF);
796 Mir2Lir::SwitchTable* tab_rec = iterator.Next();
797 if (tab_rec == NULL) break;
798 tab_rec->offset = offset;
799 if (tab_rec->table[0] == Instruction::kSparseSwitchSignature) {
800 offset += tab_rec->table[1] * (sizeof(int) * 2);
802 DCHECK_EQ(static_cast<int>(tab_rec->table[0]),
804 offset += tab_rec->table[1] * sizeof(int);
813 Mir2Lir::FillArrayData *tab_rec = iterator.Next();
814 if (tab_rec == NULL) break;
815 tab_rec->offset = offset;
816 offset += tab_rec->size;
848 void Mir2Lir::MarkPackedCaseLabels(Mir2Lir::SwitchTable* tab_rec) {
849 const uint16_t* table = tab_rec->table;
850 DexOffset base_vaddr = tab_rec->vaddr;
855 tab_rec->targets[i] = InsertCaseLabel(base_vaddr + targets[i], i + low_key);
859 tab_rec) {
860 const uint16_t* table = tab_rec->table;
861 DexOffset base_vaddr = tab_rec->vaddr;
866 tab_rec->targets[i] = InsertCaseLabel(base_vaddr + targets[i], keys[i]);
873 Mir2Lir::SwitchTable *tab_rec = iterator.Next();
874 if (tab_rec == NULL) break;
875 if (tab_rec->table[0] == Instruction::kPackedSwitchSignature) {
876 MarkPackedCaseLabels(tab_rec);
877 } else if (tab_rec->table[0] == Instruction::kSparseSwitchSignature) {
878 MarkSparseCaseLabels(tab_rec);