Bug 308717 - ARM: implement fixed-point VCVT.F64.[SU]32
Summary: ARM: implement fixed-point VCVT.F64.[SU]32
Status: RESOLVED FIXED
Alias: None
Product: valgrind
Classification: Developer tools
Component: vex (show other bugs)
Version: 3.9.0.SVN
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-20 15:52 UTC by Mans Rullgard
Modified: 2013-03-05 14:28 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Implement fixed-point VCVT.F64.i32 (1.82 KB, patch)
2012-10-20 15:53 UTC, Mans Rullgard
Details
Implement fixed-point VCVT.F64.i32 (2.44 KB, patch)
2012-10-21 11:40 UTC, Mans Rullgard
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mans Rullgard 2012-10-20 15:52:13 UTC
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;
}
Comment 1 Mans Rullgard 2012-10-20 15:53:23 UTC
Created attachment 74678 [details]
Implement fixed-point VCVT.F64.i32
Comment 2 Mans Rullgard 2012-10-20 15:59:34 UTC
Actual/expected results are obviously reversed.
Comment 3 Mans Rullgard 2012-10-21 11:40:13 UTC
Created attachment 74693 [details]
Implement fixed-point VCVT.F64.i32

Updated patch.
Comment 4 Julian Seward 2013-03-04 15:26:30 UTC
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
Comment 5 Julian Seward 2013-03-05 14:28:36 UTC
Fixed, r2694, tests r13312.  Thanks for the patch -- there were
some problems in the register numbering, I think.