| 1059 | } |
| 1060 | |
| 1061 | expr expr::bswap() const { |
| 1062 | C(); |
| 1063 | auto nbits = bits(); |
| 1064 | constexpr unsigned bytelen = 8; |
| 1065 | |
| 1066 | assert(nbits % (bytelen * 2) == 0); |
| 1067 | expr res = extract(bytelen - 1, 0); |
| 1068 | for (unsigned i = 1; i < nbits / bytelen; i++) { |
| 1069 | res = res.concat(extract((i + 1) * bytelen - 1, i * bytelen)); |
| 1070 | } |
| 1071 | |
| 1072 | return res; |
| 1073 | } |
| 1074 | |
| 1075 | expr expr::bitreverse() const { |
| 1076 | C(); |