From 10ef6941648aad04d54527d4a7a6070bf7065e88 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Thu, 22 Oct 2015 15:25:54 +0100 Subject: Delay emitting CFI PC adjustments until after Thumb2/Mips fixup. On Mips also take into account out-of-order CFI data emitted from EmitBranches(). Change-Id: I03b0b0b4c2b1ea31a02699ef5fa1c55aa42c23c3 --- compiler/utils/mips/assembler_mips.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'compiler/utils/mips/assembler_mips.h') diff --git a/compiler/utils/mips/assembler_mips.h b/compiler/utils/mips/assembler_mips.h index aa187b812b..4038c1f1c4 100644 --- a/compiler/utils/mips/assembler_mips.h +++ b/compiler/utils/mips/assembler_mips.h @@ -94,7 +94,9 @@ class MipsAssembler FINAL : public Assembler { last_position_adjustment_(0), last_old_position_(0), last_branch_id_(0), - isa_features_(instruction_set_features) {} + isa_features_(instruction_set_features) { + cfi().DelayEmittingAdvancePCs(); + } virtual ~MipsAssembler() { for (auto& branch : branches_) { @@ -599,6 +601,7 @@ class MipsAssembler FINAL : public Assembler { void PromoteBranches(); void EmitBranch(Branch* branch); void EmitBranches(); + void PatchCFI(size_t number_of_delayed_adjust_pcs); // Emits exception block. void EmitExceptionPoll(MipsExceptionSlowPath* exception); -- cgit v1.2.3-59-g8ed1b