Daniel Jacobowitz wrote:
Can't this be combined with the FPA/MAVERICK case immediately
preceeding? The offsets should be the same.
Also, do you have a test case?
I see what you mean; originally I intended to avoid the mode class == MODE_FLOAT test in the FPA/Maverick case, to not step on the HFmode cases handled below, so I simply broke off a new if-clause.
But come to think of it, maybe the right way should be to combine the cases, and fix the FPA/Maverick case to avoid HFmode too. So here's the updated patch. Thanks for pointing out the similarities Daniel.
I now have a test case attached, as a patch to gcc.target/arm/vfp-1.c. These are assembler scan tests for a new added test_ldst() function. You can observe the differences in generated code for this function, before and after the patch.
C.L.
2009-08-01 Chung-Lin Tang <cltang@pllab.cs.nthu.edu.tw>
gcc/
* config/arm/arm.c (arm_legitimate_index_p): Add VFP load/store
index range case. Change to SF/DFmode tests to avoid capturing HFmode.
gcc/testsuite/
* gcc.target/arm/vfp-1.c (test_ldst): New test for VFP load/store
immediate indexes.