@@ -39,22 +39,22 @@ to use these flags.
3939| CPU | FPU | DSP | MVE | Target CPU | Target Features |
4040| ----------- | --- | --- | --------- | ------------- | --------------------- |
4141| 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 ` |
4444| Cortex-M33 | SP | No | No | ` cortex-m33 ` | ` -dsp ` |
4545| 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 ` |
4848| Cortex-M35P | SP | No | No | ` cortex-m35p ` | ` -dsp ` |
4949| 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` |
5151| 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 ` |
5353| Cortex-M55 | DP | Yes | Int | ` cortex-m55 ` | ` -mve.fp ` |
5454| 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` |
5656| 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 ` |
5858| Cortex-M85 | DP | Yes | Int | ` cortex-m85 ` | ` -mve.fp ` |
5959| Cortex-M85 | DP | Yes | Int+Float | ` cortex-m85 ` | None |
6060
@@ -74,6 +74,19 @@ to use these flags.
7474| Cortex-M85 | DP | Yes | Int | ` cortex-m85 ` | ` -mve.fp ` |
7575| Cortex-M85 | DP | Yes | Int+Float | ` cortex-m85 ` | None |
7676
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+
7790### Arm Cortex-M33
7891
7992The target CPU is ` cortex-m33 ` .
@@ -83,7 +96,7 @@ The target CPU is `cortex-m33`.
8396 * enabled by default with this * target-cpu*
8497* Has an optional single precision FPU
8598 * 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)
87100
88101### Arm Cortex-M35P
89102
@@ -94,7 +107,7 @@ The target CPU is `cortex-m35p`.
94107 * enabled by default with this * target-cpu*
95108* Has an optional single precision FPU
96109 * 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)
98111
99112### Arm Cortex-M55
100113
@@ -106,7 +119,7 @@ The target CPU is `cortex-m55`.
106119* Has an optional double-precision FPU that also supports half-precision FP16
107120 values
108121 * 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)
110123* Has optional support for M-Profile Vector Extensions
111124 * Also known as * Helium Technology*
112125 * Available with only integer support, or both integer/float support
@@ -125,7 +138,7 @@ The target CPU is `cortex-m85`.
125138* Has an optional double-precision FPU that also supports half-precision FP16
126139 values
127140 * 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)
129142* Has optional support for M-Profile Vector Extensions
130143 * Also known as * Helium Technology*
131144 * Available with only integer support, or both integer/float support
0 commit comments