|
25 | 25 | <alloc init="false" buffer-size="malloc">pvalloc</alloc> |
26 | 26 | <dealloc>free</dealloc> |
27 | 27 | </memory> |
| 28 | + <!-- https://gcc.gnu.org/onlinedocs/gcc/Byte-Swapping-Builtins.html --> |
28 | 29 | <function name="bswap_16"> |
29 | 30 | <noreturn>false</noreturn> |
30 | 31 | <use-retval/> |
|
64 | 65 | <not-bool/> |
65 | 66 | </arg> |
66 | 67 | </function> |
67 | | - <define name="__builtin_bit_cast(type,value)" value="std::bit_cast<type>(value)"/> |
68 | 68 | <define name="__bswap_constant_64(x)" value="bswap_64(x)"/> |
69 | 69 | <define name="__builtin_bswap64(x)" value="bswap_64(x)"/> |
70 | 70 | <define name="__bswap_64(x)" value="bswap_64(x)"/> |
| 71 | + <function name="__builtin_bitreverse8"> |
| 72 | + <noreturn>false</noreturn> |
| 73 | + <use-retval/> |
| 74 | + <returnValue type="uint8_t">(arg1 = ((arg1 & 0x55555555) << 1) | ((arg1 & 0xAAAAAAAA) >> 1), |
| 75 | + arg1 = ((arg1 & 0x33333333) << 2) | ((arg1 & 0xCCCCCCCC) >> 2), |
| 76 | + arg1 = ((arg1 & 0x0F0F0F0F) << 4) | ((arg1 & 0xF0F0F0F0) >> 4), |
| 77 | + arg1) |
| 78 | + </returnValue> |
| 79 | + <leak-ignore/> |
| 80 | + <const/> |
| 81 | + <arg nr="1" direction="in"> |
| 82 | + <not-uninit/> |
| 83 | + <not-bool/> |
| 84 | + <valid>0:</valid> |
| 85 | + </arg> |
| 86 | + </function> |
| 87 | + <function name="__builtin_bitreverse16"> |
| 88 | + <noreturn>false</noreturn> |
| 89 | + <use-retval/> |
| 90 | + <returnValue type="uint16_t">(arg1 = ((arg1 & 0x55555555u) << 1) | ((arg1 & 0xAAAAAAAAu) >> 1), |
| 91 | + arg1 = ((arg1 & 0x33333333u) << 2) | ((arg1 & 0xCCCCCCCCu) >> 2), |
| 92 | + arg1 = ((arg1 & 0x0F0F0F0Fu) << 4) | ((arg1 & 0xF0F0F0F0u) >> 4), |
| 93 | + arg1 = ((arg1 & 0x00FF00FFu) << 8) | ((arg1 & 0xFF00FF00u) >> 8), |
| 94 | + arg1) |
| 95 | + </returnValue> |
| 96 | + <leak-ignore/> |
| 97 | + <const/> |
| 98 | + <arg nr="1" direction="in"> |
| 99 | + <not-uninit/> |
| 100 | + <not-bool/> |
| 101 | + <valid>0:</valid> |
| 102 | + </arg> |
| 103 | + </function> |
| 104 | + <function name="__builtin_bitreverse32"> |
| 105 | + <noreturn>false</noreturn> |
| 106 | + <use-retval/> |
| 107 | + <returnValue type="uint32_t">(arg1 = ((arg1 & 0x55555555ul) << 1) | ((arg1 & 0xAAAAAAAAul) >> 1), |
| 108 | + arg1 = ((arg1 & 0x33333333ul) << 2) | ((arg1 & 0xCCCCCCCCul) >> 2), |
| 109 | + arg1 = ((arg1 & 0x0F0F0F0Ful) << 4) | ((arg1 & 0xF0F0F0F0ul) >> 4), |
| 110 | + arg1 = ((arg1 & 0x00FF00FFul) << 8) | ((arg1 & 0xFF00FF00ul) >> 8), |
| 111 | + arg1 = ((arg1 & 0x0000FFFFul) << 16) | ((arg1 & 0xFFFF0000ul) >> 16), |
| 112 | + arg1) |
| 113 | + </returnValue> |
| 114 | + <leak-ignore/> |
| 115 | + <const/> |
| 116 | + <arg nr="1" direction="in"> |
| 117 | + <not-uninit/> |
| 118 | + <not-bool/> |
| 119 | + <valid>0:</valid> |
| 120 | + </arg> |
| 121 | + </function> |
| 122 | + <function name="__builtin_bitreverse64"> |
| 123 | + <noreturn>false</noreturn> |
| 124 | + <use-retval/> |
| 125 | + <returnValue type="uint64_t">(arg1 = ((arg1 & 0x55555555ull) << 1) | ((arg1 & 0xAAAAAAAAull) >> 1), |
| 126 | + arg1 = ((arg1 & 0x33333333ull) << 2) | ((arg1 & 0xCCCCCCCCull) >> 2), |
| 127 | + arg1 = ((arg1 & 0x0F0F0F0Full) << 4) | ((arg1 & 0xF0F0F0F0ull) >> 4), |
| 128 | + arg1 = ((arg1 & 0x00FF00FFull) << 8) | ((arg1 & 0xFF00FF00ull) >> 8), |
| 129 | + arg1 = ((arg1 & 0x0000FFFFull) << 16) | ((arg1 & 0xFFFF0000ull) >> 16), |
| 130 | + arg1 = ((arg1 & 0x00000000FFFFFFFFull) << 32) | ((arg1 & 0xFFFFFFFF00000000ull) >> 32), |
| 131 | + arg1) |
| 132 | + </returnValue> |
| 133 | + <leak-ignore/> |
| 134 | + <const/> |
| 135 | + <arg nr="1" direction="in"> |
| 136 | + <not-uninit/> |
| 137 | + <not-bool/> |
| 138 | + <valid>0:</valid> |
| 139 | + </arg> |
| 140 | + </function> |
| 141 | + <define name="__builtin_bit_cast(type,value)" value="std::bit_cast<type>(value)"/> |
71 | 142 | <!-- https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html --> |
72 | 143 | <define name="__builtin_alloca(size)" value="alloca(size)"/> |
73 | 144 | <define name="__builtin_memcpy(dest, source, size)" value="memcpy(dest, source, size)"/> |
|
0 commit comments