diff options
| author | Jouni Hogander <jouni.hogander@unikie.com> | 2019-11-19 13:12:54 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-12-17 11:10:52 +0100 |
| commit | 07bfd71dacb4775720708ca2fc39fef10c9f37c4 (patch) | |
| tree | 13d1bb01110aacfefe8999a23ac3cd83b4a5e9fa /pkg | |
| parent | d13d795888186e87aeec9ce670986d183036c348 (diff) | |
Implement basic support for MIPS64LE
Add basic stuff to enable MIPS64ELR2 target:
- build
- make extract
- make generate
- qemu execution
- system call parsing from /proc/kallsyms
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") |
