Summary: | FPXX Support for MIPS32 Valgrind | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | Aleksandar Rikalo <aleksandar.rikalo> |
Component: | general | Assignee: | Julian Seward <jseward> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | aleksandar.rikalo, mips32r2 |
Priority: | NOR | ||
Version First Reported In: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Support for mips32 FPXX
MIPS32 test for syscalls prctl(GET/SET_FP_MODE) FP32 support on MIPS64 MIPS64 version of test |
Description
Aleksandar Rikalo
2016-07-25 10:09:54 UTC
Created attachment 100286 [details]
Support for mips32 FPXX
With this patch, MIPS32 Valgrind compiled with -mfpxx can handle all types (regarding FP_ABI flag) of MIPS32 ELFs.
- Functions arch_elf_pt_proc() and arch_check_elf() are added to elf reader according to linux/fs/binfmt_elf.c from Linux 4.1;
- Processing .MIPS.abiflags section and initializing appropriate FPU mode for MIPS32 are added;
- Emulation of prctl(GET/SET_FP_MODE) sys-calls are implemented for MIPS32.
Applying the patch:
patch -p1 < mips_fpxx_full_support.diff
The patch is tested on MIPS32 platforms with Linux 3.13 and 4.1.
Also, there are no regressions on MIPS64.
Regtests need to be performed on other architectures.
Created attachment 100287 [details]
MIPS32 test for syscalls prctl(GET/SET_FP_MODE)
(In reply to Aleksandar Rikalo from comment #1) > Created attachment 100286 [details] > Support for mips32 FPXX > > With this patch, MIPS32 Valgrind compiled with -mfpxx can handle all types > (regarding FP_ABI flag) of MIPS32 ELFs. > > - Functions arch_elf_pt_proc() and arch_check_elf() are added to elf reader > according to linux/fs/binfmt_elf.c from Linux 4.1; > - Processing .MIPS.abiflags section and initializing appropriate FPU mode > for MIPS32 are added; > - Emulation of prctl(GET/SET_FP_MODE) sys-calls are implemented for MIPS32. > > Applying the patch: > patch -p1 < mips_fpxx_full_support.diff > > The patch is tested on MIPS32 platforms with Linux 3.13 and 4.1. > Also, there are no regressions on MIPS64. > > Regtests need to be performed on other architectures. The patch with minor modifications committed as: VEX r3243. Valgrind r15934. Thank you. (In reply to Aleksandar Rikalo from comment #2) > Created attachment 100287 [details] > MIPS32 test for syscalls prctl(GET/SET_FP_MODE) Can you make similar changes for MIPS64 for prctl(GET/SET_FP_MODE), so this test can be correctly executed for MIPS64 as well? Created attachment 100683 [details]
FP32 support on MIPS64
Support for FP32 emulation on MIPS64 platforms (including prctl(GET/SET_FP_MODE) syscalls).
Created attachment 100684 [details]
MIPS64 version of test
(In reply to Aleksandar Rikalo from comment #2) > Created attachment 100287 [details] > MIPS32 test for syscalls prctl(GET/SET_FP_MODE) The test commited as r16001. (In reply to Aleksandar Rikalo from comment #5) > Created attachment 100683 [details] > FP32 support on MIPS64 > > Support for FP32 emulation on MIPS64 platforms (including > prctl(GET/SET_FP_MODE) syscalls). Committed as: VEX r3253 Valgrind r16003. (In reply to Aleksandar Rikalo from comment #6) > Created attachment 100684 [details] > MIPS64 version of test The test commited as r16004. Thank you for these changes. This issue can be closed now. |