From 76c51742c9e7ad8ab137e5dab1852798fc532207 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 6 Feb 2016 18:58:39 -0500 Subject: [mips64] Support for mips n64 Adding remaining mips n64 support including stackwalker. BUG=None TEST=manually tested on Linux/Android R=vapier@chromium.org Review URL: https://codereview.chromium.org/1418453011 . --- src/client/linux/dump_writer_common/thread_info.cc | 6 ++++++ src/client/linux/dump_writer_common/ucontext_reader.cc | 6 ++++++ 2 files changed, 12 insertions(+) (limited to 'src/client/linux/dump_writer_common') diff --git a/src/client/linux/dump_writer_common/thread_info.cc b/src/client/linux/dump_writer_common/thread_info.cc index 9956d445..0a1041d6 100644 --- a/src/client/linux/dump_writer_common/thread_info.cc +++ b/src/client/linux/dump_writer_common/thread_info.cc @@ -235,7 +235,13 @@ uintptr_t ThreadInfo::GetInstructionPointer() const { } void ThreadInfo::FillCPUContext(RawContextCPU* out) const { +#if _MIPS_SIM == _ABI64 + out->context_flags = MD_CONTEXT_MIPS64_FULL; +#elif _MIPS_SIM == _ABIO32 out->context_flags = MD_CONTEXT_MIPS_FULL; +#else +# error "This mips ABI is currently not supported (n32)" +#endif for (int i = 0; i < MD_CONTEXT_MIPS_GPR_COUNT; ++i) out->iregs[i] = mcontext.gregs[i]; diff --git a/src/client/linux/dump_writer_common/ucontext_reader.cc b/src/client/linux/dump_writer_common/ucontext_reader.cc index d37fdeb0..c80724dd 100644 --- a/src/client/linux/dump_writer_common/ucontext_reader.cc +++ b/src/client/linux/dump_writer_common/ucontext_reader.cc @@ -219,7 +219,13 @@ uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { } void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { +#if _MIPS_SIM == _ABI64 + out->context_flags = MD_CONTEXT_MIPS64_FULL; +#elif _MIPS_SIM == _ABIO32 out->context_flags = MD_CONTEXT_MIPS_FULL; +#else +#error "This mips ABI is currently not supported (n32)" +#endif for (int i = 0; i < MD_CONTEXT_MIPS_GPR_COUNT; ++i) out->iregs[i] = uc->uc_mcontext.gregs[i]; -- cgit v1.2.1