首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将x86程序集注册为整型?

将x86程序集注册为整型?
EN

Stack Overflow用户
提问于 2010-11-16 05:17:09
回答 1查看 305关注 0票数 0

访问FP表示中的位的可移植方法是写入到联合中,该联合写入到内存中。至少,glibc就是这样做的。但是下面的代码看起来过于复杂,而且速度很慢。我想知道是否有一条x86指令将FP寄存器的64个可访问位复制到整数寄存器中,以便对这些位进行操作?这将不是可移植的,但其思想是具有内联函数,并且每个端口必须实现标准的干净(和快速)例程。

在本例中,我将查看isnan,它被实现为:

代码语言:javascript
复制
#define EXTRACT_WORDS(ix0,ix1,d)                \
do {                            \
  ieee_double_shape_type ew_u;              \
  ew_u.value = (d);                     \
  (ix0) = ew_u.parts.msw;                   \
  (ix1) = ew_u.parts.lsw;                   \
} while (0)

int __isnan(double x)
{
    int32_t hx,lx;
    EXTRACT_WORDS(hx,lx,x);
    hx &= 0x7fffffff;
    hx |= (u_int32_t)(lx|(-lx))>>31;
    hx = 0x7ff00000 - hx;
    return (int)(((u_int32_t)hx)>>31);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-16 06:39:23

没有将FP寄存器复制到整数寄存器的x86指令,反之亦然。您可能可以通过使用SSE instrinsics来获得您想要的内容,因为SSE寄存器可以同时包含整数和浮点值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4188898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档