diff options
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/cover/report.go | 5 | ||||
| -rw-r--r-- | pkg/host/syscalls_linux.go | 2 | ||||
| -rw-r--r-- | pkg/osutil/osutil_linux.go | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/pkg/cover/report.go b/pkg/cover/report.go index 9268f733d..419fd4ba1 100644 --- a/pkg/cover/report.go +++ b/pkg/cover/report.go @@ -435,6 +435,8 @@ func PreviousInstructionPC(arch string, pc uint64) uint64 { return (pc - 3) & ^uint64(1) case "ppc64le": return pc - 4 + case "mips64le": + return pc - 4 default: panic(fmt.Sprintf("unknown arch %q", arch)) } @@ -458,6 +460,9 @@ func archCallInsn(arch string) (string, string) { case "ppc64le": // c00000000006d904: bl c000000000350780 <.__sanitizer_cov_trace_pc> return "\tbl ", " <.__sanitizer_cov_trace_pc>" + case "mips64le": + // ffffffff80100420: jal ffffffff80205880 <__sanitizer_cov_trace_pc> + return "\tjal\t", callName default: panic(fmt.Sprintf("unknown arch %q", arch)) } diff --git a/pkg/host/syscalls_linux.go b/pkg/host/syscalls_linux.go index 5e67d05eb..d9c247c88 100644 --- a/pkg/host/syscalls_linux.go +++ b/pkg/host/syscalls_linux.go @@ -75,6 +75,8 @@ func parseKallsyms(kallsyms []byte, arch string) map[string]bool { re = regexp.MustCompile(` T (__arm64_)?sys_([^\n]+)\n`) case "ppc64le": re = regexp.MustCompile(` T ()?sys_([^\n]+)\n`) + case "mips64le": + re = regexp.MustCompile(` T sys_(mips_)?([^\n]+)\n`) default: panic("unsupported arch for kallsyms parsing") } diff --git a/pkg/osutil/osutil_linux.go b/pkg/osutil/osutil_linux.go index 8a99a5f84..79df69999 100644 --- a/pkg/osutil/osutil_linux.go +++ b/pkg/osutil/osutil_linux.go @@ -58,7 +58,7 @@ func removeImmutable(fname string) error { cmd = 1074030082 case "amd64", "arm64": cmd = 1074292226 - case "ppc64le": + case "ppc64le", "mips64le": cmd = 2148034050 default: panic("unknown arch") |
