@@ -39,22 +39,22 @@ to use these flags.
39
39
| CPU | FPU | DSP | MVE | Target CPU | Target Features |
40
40
| ----------- | --- | --- | --------- | ------------- | --------------------- |
41
41
| Unspecified | No | No | No | None | None |
42
- | Cortex-M33 | No | No | No | ` cortex-m33 ` | ` +soft-float ,-dsp` |
43
- | Cortex-M33 | No | Yes | No | ` cortex-m33 ` | ` +soft-float ` |
42
+ | Cortex-M33 | No | No | No | ` cortex-m33 ` | ` -fpregs ,-dsp` |
43
+ | Cortex-M33 | No | Yes | No | ` cortex-m33 ` | ` -fpregs ` |
44
44
| Cortex-M33 | SP | No | No | ` cortex-m33 ` | ` -dsp ` |
45
45
| Cortex-M33 | SP | Yes | No | ` cortex-m33 ` | None |
46
- | Cortex-M35P | No | No | No | ` cortex-m35p ` | ` +soft-float ,-dsp` |
47
- | Cortex-M35P | No | Yes | No | ` cortex-m35p ` | ` +soft-float ` |
46
+ | Cortex-M35P | No | No | No | ` cortex-m35p ` | ` -fpregs ,-dsp` |
47
+ | Cortex-M35P | No | Yes | No | ` cortex-m35p ` | ` -fpregs ` |
48
48
| Cortex-M35P | SP | No | No | ` cortex-m35p ` | ` -dsp ` |
49
49
| Cortex-M35P | SP | Yes | No | ` cortex-m35p ` | None |
50
- | Cortex-M55 | No | Yes | No | ` cortex-m55 ` | ` +soft-float ,-mve` |
50
+ | Cortex-M55 | No | Yes | No | ` cortex-m55 ` | ` -fpregs ,-mve` |
51
51
| Cortex-M55 | DP | Yes | No | ` cortex-m55 ` | ` -mve ` |
52
- | Cortex-M55 | No | Yes | Int | ` cortex-m55 ` | ` +soft-float ,-mve.fp` |
52
+ | Cortex-M55 | No | Yes | Int | ` cortex-m55 ` | ` -fpregs ,-mve.fp,+mve ` |
53
53
| Cortex-M55 | DP | Yes | Int | ` cortex-m55 ` | ` -mve.fp ` |
54
54
| Cortex-M55 | DP | Yes | Int+Float | ` cortex-m55 ` | None |
55
- | Cortex-M85 | No | Yes | No | ` cortex-m85 ` | ` +soft-float ,-mve` |
55
+ | Cortex-M85 | No | Yes | No | ` cortex-m85 ` | ` -fpregs ,-mve` |
56
56
| Cortex-M85 | DP | Yes | No | ` cortex-m85 ` | ` -mve ` |
57
- | Cortex-M85 | No | Yes | Int | ` cortex-m85 ` | ` +soft-float ,-mve.fp` |
57
+ | Cortex-M85 | No | Yes | Int | ` cortex-m85 ` | ` -fpregs ,-mve.fp,+mve ` |
58
58
| Cortex-M85 | DP | Yes | Int | ` cortex-m85 ` | ` -mve.fp ` |
59
59
| Cortex-M85 | DP | Yes | Int+Float | ` cortex-m85 ` | None |
60
60
@@ -74,6 +74,19 @@ to use these flags.
74
74
| Cortex-M85 | DP | Yes | Int | ` cortex-m85 ` | ` -mve.fp ` |
75
75
| Cortex-M85 | DP | Yes | Int+Float | ` cortex-m85 ` | None |
76
76
77
+ * Technically* you can use this hard-float ABI on a CPU which has no FPU but does
78
+ have Integer MVE, because MVE provides the same set of registers as the FPU
79
+ (including ` s0 ` and ` d0 ` ). The particular set of flags that might enable this
80
+ unusual scenario are currently not recorded here.
81
+
82
+ <div class =" warning " >
83
+
84
+ Never use the ` -fpregs ` * target-feature* with the ` thumbv8m.main-none-eabihf `
85
+ target as it will cause compilation units to have different ABIs, which is
86
+ unsound.
87
+
88
+ </div >
89
+
77
90
### Arm Cortex-M33
78
91
79
92
The target CPU is ` cortex-m33 ` .
@@ -83,7 +96,7 @@ The target CPU is `cortex-m33`.
83
96
* enabled by default with this * target-cpu*
84
97
* Has an optional single precision FPU
85
98
* support is enabled by default with this * target-cpu*
86
- * disable support using the ` +soft-float ` feature (` eabi ` only)
99
+ * disable support using the ` -fpregs ` * target- feature* (` eabi ` only)
87
100
88
101
### Arm Cortex-M35P
89
102
@@ -94,7 +107,7 @@ The target CPU is `cortex-m35p`.
94
107
* enabled by default with this * target-cpu*
95
108
* Has an optional single precision FPU
96
109
* support is enabled by default with this * target-cpu*
97
- * disable support using the ` +soft-float ` feature (` eabi ` only)
110
+ * disable support using the ` -fpregs ` * target- feature* (` eabi ` only)
98
111
99
112
### Arm Cortex-M55
100
113
@@ -106,7 +119,7 @@ The target CPU is `cortex-m55`.
106
119
* Has an optional double-precision FPU that also supports half-precision FP16
107
120
values
108
121
* support is enabled by default with this * target-cpu*
109
- * disable support using the ` +soft-float ` feature (` eabi ` only)
122
+ * disable support using the ` -fpregs ` * target- feature* (` eabi ` only)
110
123
* Has optional support for M-Profile Vector Extensions
111
124
* Also known as * Helium Technology*
112
125
* Available with only integer support, or both integer/float support
@@ -125,7 +138,7 @@ The target CPU is `cortex-m85`.
125
138
* Has an optional double-precision FPU that also supports half-precision FP16
126
139
values
127
140
* support is enabled by default with this * target-cpu*
128
- * disable support using the ` +soft-float ` feature (` eabi ` only)
141
+ * disable support using the ` -fpregs ` * target- feature* (` eabi ` only)
129
142
* Has optional support for M-Profile Vector Extensions
130
143
* Also known as * Helium Technology*
131
144
* Available with only integer support, or both integer/float support
0 commit comments