diff options
author | gordana.cmiljanovic@imgtec.com <gordana.cmiljanovic@imgtec.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2013-09-25 08:18:03 +0000 |
---|---|---|
committer | gordana.cmiljanovic@imgtec.com <gordana.cmiljanovic@imgtec.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2013-09-25 08:18:03 +0000 |
commit | db877a13bbb35f8d6b2c645177aee8f3be51800e (patch) | |
tree | a089c016e9d6cad6ef5773d5cdfa05a96aa3ad22 /src/client | |
parent | Handle block helper functions in Breakpad symbol parser. Block helper functi... (diff) | |
download | breakpad-db877a13bbb35f8d6b2c645177aee8f3be51800e.tar.xz |
Adding mips support for Android.
Mips linux support has been added previously in r1212. Some additional changes
are required to make breakpad functional on Android.
BUG=none
TEST=build, unittests, chrome test application
Review URL: https://breakpad.appspot.com/632002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1215 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/linux/handler/exception_handler_unittest.cc | 7 | ||||
-rw-r--r-- | src/client/linux/minidump_writer/minidump_writer.cc | 4 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/client/linux/handler/exception_handler_unittest.cc b/src/client/linux/handler/exception_handler_unittest.cc index 702a3adb..cfd50bb3 100644 --- a/src/client/linux/handler/exception_handler_unittest.cc +++ b/src/client/linux/handler/exception_handler_unittest.cc @@ -76,7 +76,12 @@ void FlushInstructionCache(const char* memory, uint32_t memory_size) { # error "Your operating system is not supported yet" # endif #elif defined(__mips__) -# if defined(__linux__) +# if defined(__ANDROID__) + // Provided by Android's <unistd.h> + long begin = reinterpret_cast<long>(memory); + long end = begin + static_cast<long>(memory_size); + cacheflush(begin, end, 0); +# elif defined(__linux__) // See http://www.linux-mips.org/wiki/Cacheflush_Syscall. cacheflush(const_cast<char*>(memory), memory_size, ICACHE); # else diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc index 413e0807..ee759274 100644 --- a/src/client/linux/minidump_writer/minidump_writer.cc +++ b/src/client/linux/minidump_writer/minidump_writer.cc @@ -429,7 +429,11 @@ static void CPUFillFromUContext(MDRawContextMIPS* out, const ucontext* uc, out->cause = 0; // Not reported in signal context. for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i) +#if defined (__ANDROID__) + out->float_save.regs[i] = uc->uc_mcontext.fpregs[i]; +#else out->float_save.regs[i] = uc->uc_mcontext.fpregs.fp_r.fp_dregs[i]; +#endif out->float_save.fpcsr = uc->uc_mcontext.fpc_csr; out->float_save.fir = uc->uc_mcontext.fpc_eir; // Unused. |