[llvm-commits] [PATCH] Incorrect VFP version supporting ARM Cortex-M4

Jim Grosbach grosbach at apple.com
Fri Jul 13 16:18:27 PDT 2012


What is missing given the current definition? That is, what instructions should be available that are currently marked unavailable. Can you provide a test-case of an assembly file that should be legal for m4 that is currently rejected?

-Jim

On Jul 13, 2012, at 3:51 PM, Jiangning Liu <liujiangning1 at gmail.com> wrote:

> Hi Jim,
> 
> No, Cortex-M4 doesn't support full VFPv4, so you are right fpv4-sp-d16 is different from full VFPv4.
> 
> 1) 'V' here implies vector instructions, while Cortex-M4 doesn't have.
> 2) sp means SIngle Precision
> 3) d16 means only 16-bit data operation only.
> 
> This is why other attributes are specified for Cortex-M4 as well. I think FeatureVFPOnlySP is being used to make this difference.
> 
> At least we can't say Cortex-M4 is VFPv2.
> 
> Thanks,
> -Jiangning
> 
> 在 2012-7-14,上午1:09,Jim Grosbach <grosbach at apple.com> 写道:
> 
>> VFP4 means something very different from VFP2. Does the M4 really have a full VFP4 implementation available?
>> 
>> -Jim
>> 
>> On Jul 13, 2012, at 1:17 AM, Jiangning Liu <jiangning.liu at arm.com> wrote:
>> 
>>> Hi,
>>> 
>>> The full name of FP version of ARM Cortex-M4 is fpv4-sp-d16, so the FP
>>> version should be vfp4 rather than vfp2. This patch changes FeatureVFP2 to
>>> FeatureVFP4 for Cortex-M4.
>>> 
>>> Thanks,
>>> -Jiangning
>>> 
>>> diff --git a/lib/Target/ARM/ARM.td b/lib/Target/ARM/ARM.td
>>> index cd3c0e0..69e2346 100644
>>> --- a/lib/Target/ARM/ARM.td
>>> +++ b/lib/Target/ARM/ARM.td
>>> @@ -224,7 +224,7 @@ def : ProcNoItin<"cortex-m3",       [HasV7Ops,
>>> def : ProcNoItin<"cortex-m4",       [HasV7Ops,
>>>                                    FeatureThumb2, FeatureNoARM,
>>> FeatureDB,
>>>                                    FeatureHWDiv, FeatureDSPThumb2,
>>> -                                     FeatureT2XtPk, FeatureVFP2,
>>> +                                     FeatureT2XtPk, FeatureVFP4,
>>>                                    FeatureVFPOnlySP, FeatureMClass]>;
>>> 
>>> 
>>> //===----------------------------------------------------------------------=
>>> ==//<cortex_m4_fpv4.patch>_______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list