summaryrefslogtreecommitdiffstats
path: root/compiler/dex/quick/mips/call_mips.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/dex/quick/mips/call_mips.cc')
-rw-r--r--compiler/dex/quick/mips/call_mips.cc48
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);