| Summary: | ARM: implement fixed-point VCVT.F64.[SU]32 | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | Mans Rullgard <mans> |
| Component: | vex | Assignee: | Julian Seward <jseward> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | 3.9.0.SVN | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
Implement fixed-point VCVT.F64.i32
Implement fixed-point VCVT.F64.i32 |
||
Created attachment 74678 [details]
Implement fixed-point VCVT.F64.i32
Actual/expected results are obviously reversed. Created attachment 74693 [details]
Implement fixed-point VCVT.F64.i32
Updated patch.
I would like to commit this, but I don't want to do that without adding test cases. So far though I have failed to create tests because I have a buggy assembler that doesn't assembly the instructions correctly. Can you assemble these, then objdump -d them, to verify that they are the correct thing, and show the instruction words? Then I can put them in with ".word". vcvt.f64.s32 d5, d5, #1 vcvt.f64.s32 d5, d5, #32 vcvt.f64.u32 d5, d5, #1 vcvt.f64.u32 d5, d5, #32 Fixed, r2694, tests r13312. Thanks for the patch -- there were some problems in the register numbering, I think. |
The fixed-point VFP VCVT.F64.{S,U}32 instructions are not implemented. Reproducible: Always Steps to Reproduce: Run a program using one of the instructions. Actual Results: Correct execution. Expected Results: Execution aborts. Recent gcc versions generate these instructions from code like this: double f(int x) { return x * 0.5; }