项目遇到一段调用非常多的代码,运算能力不足,各位路过帮帮看看怎么优化一下.
一段16字节整体左移一位,最后或上一位可变量C代码.跑在stm32或者arm9上.
改查表,汇编都行,谢过.代码如下
- uint32_t* st;
- st[3] = (st[3] << 1) | ((st[2] >> 31) & 1);
- st[2] = (st[2] << 1) | ((st[1] >> 31) & 1);
- st[1] = (st[1] << 1) | ((st[0] >> 31) & 1);
- st[0] = (st[0] << 1) | v;
复制代码
还真是,中午精力不太好
不过再怎么优化也得12个周期保底,因为risc没有内存操作指令,只能先ld再st。
一周热门 更多>