]> begriffs open source - cmsis/commit
IAR: LDRT et al must be asm volatile
authorKevin Bracey <kevin.bracey@arm.com>
Wed, 9 Jan 2019 13:23:03 +0000 (15:23 +0200)
committerJonatan Antoni <jonatan.antoni@arm.com>
Tue, 30 Jul 2019 14:37:01 +0000 (16:37 +0200)
commitd0fe4e7baa35996248af239d0480041ff1086812
tree494abf21be66eb963071893556e0d9e1629efeb0
parent8a2b7bda32970a217e65af722d89d252af2533ec
IAR: LDRT et al must be asm volatile

As these functions take volatile pointers, the API is promising that the
loads and stores will happen, so the assembler statements need volatile
qualifiers too.

If the functions took non-volatile pointers, or had a separate
non-volatile overload for C++, then the volatile could be omitted - the
instructions are normal loads and stores with no side-effects.

GCC and clang assembler already is "asm volatile", and armcc uses
intrinsics.

Change-Id: I4f5ce19ad732caa03ea9110501f0634175c85d4e
CMSIS/Core/Include/cmsis_iccarm.h