… | |
… | |
242 | Similar to C<ecb_unused>, but marks a function, variable or type as |
242 | Similar to C<ecb_unused>, but marks a function, variable or type as |
243 | deprecated. This makes some compilers warn when the type is used. |
243 | deprecated. This makes some compilers warn when the type is used. |
244 | |
244 | |
245 | =item ecb_deprecated_message (message) |
245 | =item ecb_deprecated_message (message) |
246 | |
246 | |
247 | Same as C<ecb_deprecated>, but if possible, supply a diagnostic that is |
247 | Same as C<ecb_deprecated>, but if possible, supplies a diagnostic that is |
248 | used instead of a generic depreciation message when the object is being |
248 | used instead of a generic depreciation message when the object is being |
249 | used. |
249 | used. |
250 | |
250 | |
251 | =item ecb_inline |
251 | =item ecb_inline |
252 | |
252 | |
… | |
… | |
262 | return - (a * b); |
262 | return - (a * b); |
263 | } |
263 | } |
264 | |
264 | |
265 | =item ecb_noinline |
265 | =item ecb_noinline |
266 | |
266 | |
267 | Prevent a function from being inlined - it might be optimised away, but |
267 | Prevents a function from being inlined - it might be optimised away, but |
268 | not inlined into other functions. This is useful if you know your function |
268 | not inlined into other functions. This is useful if you know your function |
269 | is rarely called and large enough for inlining not to be helpful. |
269 | is rarely called and large enough for inlining not to be helpful. |
270 | |
270 | |
271 | =item ecb_noreturn |
271 | =item ecb_noreturn |
272 | |
272 | |
… | |
… | |
489 | real_reserve_method (size); /* presumably noinline */ |
489 | real_reserve_method (size); /* presumably noinline */ |
490 | } |
490 | } |
491 | |
491 | |
492 | =item ecb_assume (cond) |
492 | =item ecb_assume (cond) |
493 | |
493 | |
494 | Try to tell the compiler that some condition is true, even if it's not |
494 | Tries to tell the compiler that some condition is true, even if it's not |
495 | obvious. This is not a function, but a statement: it cannot be used in |
495 | obvious. This is not a function, but a statement: it cannot be used in |
496 | another expression. |
496 | another expression. |
497 | |
497 | |
498 | This can be used to teach the compiler about invariants or other |
498 | This can be used to teach the compiler about invariants or other |
499 | conditions that might improve code generation, but which are impossible to |
499 | conditions that might improve code generation, but which are impossible to |
… | |
… | |
598 | |
598 | |
599 | =item bool ecb_is_pot32 (uint32_t x) |
599 | =item bool ecb_is_pot32 (uint32_t x) |
600 | |
600 | |
601 | =item bool ecb_is_pot64 (uint32_t x) |
601 | =item bool ecb_is_pot64 (uint32_t x) |
602 | |
602 | |
603 | Return true iff C<x> is a power of two or C<x == 0>. |
603 | Returns true iff C<x> is a power of two or C<x == 0>. |
604 | |
604 | |
605 | For smaller types then C<uint32_t> you can safely use C<ecb_is_pot32>. |
605 | For smaller types than C<uint32_t> you can safely use C<ecb_is_pot32>. |
606 | |
606 | |
607 | =item int ecb_ld32 (uint32_t x) |
607 | =item int ecb_ld32 (uint32_t x) |
608 | |
608 | |
609 | =item int ecb_ld64 (uint64_t x) |
609 | =item int ecb_ld64 (uint64_t x) |
610 | |
610 | |