[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 .
This commit is contained in:
Mike Frysinger
2016-02-06 18:58:39 -05:00
parent c199f5b122
commit 76c51742c9
19 changed files with 1176 additions and 140 deletions

View File

@@ -1009,7 +1009,8 @@ bool MinidumpContext::Read(uint32_t expected_size) {
break;
}
case MD_CONTEXT_MIPS: {
case MD_CONTEXT_MIPS:
case MD_CONTEXT_MIPS64: {
if (expected_size != sizeof(MDRawContextMIPS)) {
BPLOG(ERROR) << "MinidumpContext MIPS size mismatch, "
<< expected_size
@@ -1157,6 +1158,11 @@ bool MinidumpContext::CheckAgainstSystemInfo(uint32_t context_cpu_type) {
if (system_info_cpu_type == MD_CPU_ARCHITECTURE_MIPS)
return_value = true;
break;
case MD_CONTEXT_MIPS64:
if (system_info_cpu_type == MD_CPU_ARCHITECTURE_MIPS64)
return_value = true;
break;
}
BPLOG_IF(ERROR, !return_value) << "MinidumpContext CPU " <<
@@ -4209,6 +4215,9 @@ bool Minidump::GetContextCPUFlagsFromSystemInfo(uint32_t *context_cpu_flags) {
case MD_CPU_ARCHITECTURE_MIPS:
*context_cpu_flags = MD_CONTEXT_MIPS;
break;
case MD_CPU_ARCHITECTURE_MIPS64:
*context_cpu_flags = MD_CONTEXT_MIPS64;
break;
case MD_CPU_ARCHITECTURE_ALPHA:
*context_cpu_flags = MD_CONTEXT_ALPHA;
break;