diff --git a/riscv-elf.md b/riscv-elf.md index 74582c21..1499077f 100644 --- a/riscv-elf.md +++ b/riscv-elf.md @@ -308,6 +308,12 @@ A null pointer (for all types) has the value zero. The value of `_Alignof(max_align_t)` is 16. +Atomic types (for instance using `_Atomic(T)` (C11) or `std::atomic` (C++11)) +with a width less than or equal to 128 bits, should, if they are not a +power-of-two width, be padded to the next power-of-two width. They should be +aligned to their width including any padding. This should be done regardless of +whether any atomic extensions are enabled. + ## va_list, va_start, and va_arg The `va_list` type is `void*`. A callee with variadic arguments is responsible