From 2689fbad6b5ec1ae8f8c8791a80c6fd3cf24144d Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Mon, 23 Jun 2014 13:23:04 -0700 Subject: ART: Split out more cases of Load/StoreRef, volatile as parameter Splits out more cases of ref registers being loaded or stored. For code clarity, adds volatile as a flag parameter instead of a separate method. On ARM64, continue cleanup. Add flags to print/fatal on size mismatches. Change-Id: I30ed88433a6b4ff5399aefffe44c14a5e6f4ca4e --- compiler/dex/quick/codegen_util.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'compiler/dex/quick/codegen_util.cc') diff --git a/compiler/dex/quick/codegen_util.cc b/compiler/dex/quick/codegen_util.cc index ec0fb43571..5ff73800de 100644 --- a/compiler/dex/quick/codegen_util.cc +++ b/compiler/dex/quick/codegen_util.cc @@ -79,6 +79,15 @@ void Mir2Lir::MarkSafepointPC(LIR* inst) { DCHECK(safepoint_pc->u.m.def_mask->Equals(kEncodeAll)); } +void Mir2Lir::MarkSafepointPCAfter(LIR* after) { + DCHECK(!after->flags.use_def_invalid); + after->u.m.def_mask = &kEncodeAll; + // As NewLIR0 uses Append, we need to create the LIR by hand. + LIR* safepoint_pc = RawLIR(current_dalvik_offset_, kPseudoSafepointPC); + InsertLIRAfter(after, safepoint_pc); + DCHECK(safepoint_pc->u.m.def_mask->Equals(kEncodeAll)); +} + /* Remove a LIR from the list. */ void Mir2Lir::UnlinkLIR(LIR* lir) { if (UNLIKELY(lir == first_lir_insn_)) { -- cgit v1.2.3-59-g8ed1b