Manuel Pégourié-Gonnard
72a8c9e7dc
Force some compilers to respect volatile reads
...
Inspection of the generated assembly showed that before this commit, armcc 5
was optimizing away the successive reads to the volatile local variable that's
used for double-checks. Inspection also reveals that inserting a call to an
external function is enough to prevent it from doing that.
The tested versions of ARM-GCC, Clang and Armcc 6 (aka armclang) all keep the
double read, with our without a call to an external function in the middle.
The inserted function can also be changed to insert a random delay if
desired in the future, as it is appropriately places between the reads.
2019-11-21 15:14:59 +01:00
..
2015-06-25 10:59:56 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-23 14:53:29 +01:00
2019-10-30 14:07:04 +02:00
2019-10-03 13:14:33 +03:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-09-04 16:19:49 +01:00
2019-10-30 14:07:04 +02:00
2019-10-22 10:03:07 +02:00
2019-06-25 09:10:57 +01:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-09-25 16:37:07 +01:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-22 10:03:07 +02:00
2019-10-22 10:03:07 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-22 10:03:07 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-11-21 15:14:59 +01:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-08 18:57:31 +01:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-22 10:03:07 +02:00
2019-10-22 10:03:07 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-03 13:14:33 +03:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-11-21 15:14:59 +01:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-11-21 15:14:59 +01:00
2018-10-11 11:04:20 +01:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2018-10-09 16:36:53 +01:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-09-04 16:17:45 +01:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2018-09-06 12:09:56 +01:00
2019-06-20 16:33:02 +01:00
2019-10-24 12:19:33 +03:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-23 14:53:29 +01:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00
2019-10-30 14:07:04 +02:00