ARM/AArch64上的DIVQ对应物(带双宽度被除数的缩小除法)?
创始人
2024-09-13 15:01:11
0

在ARM / AArch64上,可以使用UMULL、MLA和UDIV指令模拟带双宽度被除数的缩小除法。以下是一个示例函数,它使用这些指令来计算DIVQ的等效值:

uint64_t divq(uint64_t a, uint64_t b) {
  if (a < b) return 0;
  if (a == b) return 1;
  uint32_t leading_zeros = __builtin_clzll(b);
  uint64_t r = b << leading_zeros;
  uint64_t q = 0;
  for (int i = 0; i < 64 - leading_zeros; i++) {
    uint64_t t = ((q << 1) | ((a >> (63 - i)) & 1)) - r;
    if (t >> 63 == 0) {
      q = (q << 1) | ((a >> (63 - i)) & 1);
    } else {
      q = (q << 1) | (((a >> (63 - i)) & 1) ^ 1);
      t += r;
    }
    r = (r >> 1) | (t >> 63);
  }
  return q;
}

这个函数计算a / b的整数部分,并返回它作为uint64_t类型的结果。

相关内容

热门资讯

推荐几款新版“wepoker到... 您好:wepoker到底能不能开挂这款游戏是可以开挂的,软件加【添加微信客服136704302】确实...
我来教大家“WePoker透视... 您好:WePoker透视插件怎么装的软件,软件加客服确实是有挂的,很多玩家在这款游戏中打牌都会发现很...
我来教教大家“wepoker能... 您好:wepoker能不能开挂透视这款游戏是可以开挂的,软件加【添加微信客服136704302】确实...
热点讨论“wepoker辅助透... 您好,wepoker辅助透视挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很...
大家学习交流“wepoker辅... >>>您好:,软件加微信【添加136704302】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
今日头条“wepoker发牌规... >>>您好:,软件加微信【添加136704302】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
实测教程“wepoker有没有... >>>您好:,软件加微信【添加136704302】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
最新研发“wrpoker透视挂... 您好:wrpoker透视挂真的吗这款游戏是可以开挂的,软件加【添加微信客服136704302】确实是...
分享一款“wpk正版透视”开挂... 您好:wpk正版透视这款游戏是可以开挂的,软件加【添加微信客服136704302】确实是有挂的,很多...
玩家爆料“WePoKer透视软... WePoKer透视软件挂下载是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用...