如何知道某个数字在ARM中可以表示为32位立即数?
How to know that a certain number can be represented as 32 bit immediate in ARM?
给定一个数字 x,我们如何判断它可以表示为 32 位立即数。
是否存在某种公式?如果是,该公式是否详尽无遗,即涵盖所有可能的情况? ARM将指令集中最右边的12位分解为4位循环位和8位值位。
我会研究开源编译器以及它们是如何做到的...
/* Return TRUE if int I is a valid immediate ARM constant. */
int
const_ok_for_arm (HOST_WIDE_INT i)
{
...
给定一个数字 x,我们如何判断它可以表示为 32 位立即数。 是否存在某种公式?如果是,该公式是否详尽无遗,即涵盖所有可能的情况? ARM将指令集中最右边的12位分解为4位循环位和8位值位。
我会研究开源编译器以及它们是如何做到的...
/* Return TRUE if int I is a valid immediate ARM constant. */
int
const_ok_for_arm (HOST_WIDE_INT i)
{
...