aboutsummaryrefslogtreecommitdiff
path: root/src/processor/synth_minidump.cc
diff options
context:
space:
mode:
authorgordana.cmiljanovic@imgtec.com <gordana.cmiljanovic@imgtec.com@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-09-11 11:37:04 +0000
committergordana.cmiljanovic@imgtec.com <gordana.cmiljanovic@imgtec.com@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-09-11 11:37:04 +0000
commitf78839c15730533fc433c50ea83a3afea835c245 (patch)
tree9b3136dd94e663af23394356679b78467fddd5b7 /src/processor/synth_minidump.cc
parentFixing minidump_dump to handle nacl dumps. (diff)
downloadbreakpad-f78839c15730533fc433c50ea83a3afea835c245.tar.xz
Adding support for mips.
Support for mips cpu is added to all breakapad targets including unittests. BUG=none TEST=unittests Review URL: https://breakpad.appspot.com/614002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1212 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor/synth_minidump.cc')
-rw-r--r--src/processor/synth_minidump.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/processor/synth_minidump.cc b/src/processor/synth_minidump.cc
index 0940a357..2cfbb088 100644
--- a/src/processor/synth_minidump.cc
+++ b/src/processor/synth_minidump.cc
@@ -195,6 +195,42 @@ Context::Context(const Dump &dump, const MDRawContextARM &context)
assert(Size() == sizeof(MDRawContextARM));
}
+Context::Context(const Dump &dump, const MDRawContextMIPS &context)
+ : Section(dump) {
+ // The caller should have properly set the CPU type flag.
+ assert(context.context_flags & MD_CONTEXT_MIPS);
+ D32(context.context_flags);
+ D32(context._pad0);
+
+ for (int i = 0; i < MD_CONTEXT_MIPS_GPR_COUNT; ++i)
+ D64(context.iregs[i]);
+
+ D64(context.mdhi);
+ D64(context.mdlo);
+
+ for (int i = 0; i < MD_CONTEXT_MIPS_DSP_COUNT; ++i)
+ D32(context.hi[i]);
+
+ for (int i = 0; i < MD_CONTEXT_MIPS_DSP_COUNT; ++i)
+ D32(context.lo[i]);
+
+ D32(context.dsp_control);
+ D32(context._pad1);
+
+ D64(context.epc);
+ D64(context.badvaddr);
+ D32(context.status);
+ D32(context.cause);
+
+ for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
+ D64(context.float_save.regs[i]);
+
+ D32(context.float_save.fpcsr);
+ D32(context.float_save.fir);
+
+ assert(Size() == sizeof(MDRawContextMIPS));
+}
+
Thread::Thread(const Dump &dump,
uint32_t thread_id, const Memory &stack, const Context &context,
uint32_t suspend_count, uint32_t priority_class,