diff options
Diffstat (limited to 'compiler/dex/quick/mips/call_mips.cc')
-rw-r--r-- | compiler/dex/quick/mips/call_mips.cc | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/compiler/dex/quick/mips/call_mips.cc b/compiler/dex/quick/mips/call_mips.cc index 6536c41..8b5bc45 100644 --- a/compiler/dex/quick/mips/call_mips.cc +++ b/compiler/dex/quick/mips/call_mips.cc @@ -210,54 +210,6 @@ void MipsMir2Lir::GenLargePackedSwitch(MIR* mir, DexOffset table_offset, RegLoca branch_over->target = target; } -/* - * Array data table format: - * ushort ident = 0x0300 magic value - * ushort width width of each element in the table - * uint size number of elements in the table - * ubyte data[size*width] table of data values (may contain a single-byte - * padding at the end) - * - * Total size is 4+(width * size + 1)/2 16-bit code units. - */ -void MipsMir2Lir::GenFillArrayData(MIR* mir, DexOffset table_offset, RegLocation rl_src) { - const uint16_t* table = mir_graph_->GetTable(mir, table_offset); - // Add the table to the list - we'll process it later - FillArrayData* tab_rec = - reinterpret_cast<FillArrayData*>(arena_->Alloc(sizeof(FillArrayData), - kArenaAllocData)); - tab_rec->table = table; - tab_rec->vaddr = current_dalvik_offset_; - uint16_t width = tab_rec->table[1]; - uint32_t size = tab_rec->table[2] | ((static_cast<uint32_t>(tab_rec->table[3])) << 16); - tab_rec->size = (size * width) + 8; - - fill_array_data_.push_back(tab_rec); - - // Making a call - use explicit registers - FlushAllRegs(); /* Everything to home location */ - LockCallTemps(); - LoadValueDirectFixed(rl_src, rs_rMIPS_ARG0); - - // Must prevent code motion for the curr pc pair - GenBarrier(); - NewLIR0(kMipsCurrPC); // Really a jal to .+8 - // Now, fill the branch delay slot with the helper load - RegStorage r_tgt = LoadHelper(kQuickHandleFillArrayData); - GenBarrier(); // Scheduling barrier - - // Construct BaseLabel and set up table base register - LIR* base_label = NewLIR0(kPseudoTargetLabel); - - // Materialize a pointer to the fill data image - NewLIR4(kMipsDelta, rMIPS_ARG1, 0, WrapPointer(base_label), WrapPointer(tab_rec)); - - // And go... - ClobberCallerSave(); - LIR* call_inst = OpReg(kOpBlx, r_tgt); // ( array*, fill_data* ) - MarkSafepointPC(call_inst); -} - void MipsMir2Lir::GenMoveException(RegLocation rl_dest) { int ex_offset = Thread::ExceptionOffset<4>().Int32Value(); RegLocation rl_result = EvalLoc(rl_dest, kRefReg, true); |