Es geht um Cortex-M4+Fpu. Der g++ macht aus
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
ein
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
oder manchmal auch ein
1 |
|
2 |
|
wenn der Registerdruck zunimmt. Also ein atomares load oder store. Ich meine keine atomaren RMW-Zyklen, das kann der Cortex-M generell nicht (dazu existiert ldrex/strex oder IRQ-Sperre).
Die Frage nun: gibt es ein GCC-intrinsic, womit ich feststellen kann, bis zu welcher Größer ein fundamentaler DT atomar gelesen oder geschrieben werden kann. Auf einer 32-Bit CPU kann ich sicher 32-Bit annehmen, aber hier geht ja auch 64-Bit.