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; }
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.