14得票10回答
纳秒转毫秒 - 快速除以1000000

我想将gethrtime的输出转换为毫秒。 显而易见的方法是除以1000000。 然而,我经常这样做,想知道是否可能成为瓶颈。 当处理像1000000这样的数字时,是否有优化的除法运算? 注意:任何代码都必须是可移植的。我正在使用gcc,通常在Sparc硬件上运行。 使用下面的代码进行...

12得票2回答
在Sparc 32位系统上处理值大于2^32的整数

我编写了一个小程序,用一段内联的 Sparc 汇编代码来测量进入循环所花费的时间。一切都很顺利,直到我将迭代次数设置为大约 4.0+9(超过 2^32)。以下是代码片段:#include <stdio.h> #include <sys/time.h> #include ...

12得票10回答
在没有Sparc硬件的情况下运行Sparc二进制文件

在过去几个月中,我对尝试为SPARC处理器(无论是V8还是V9)编写一些汇编代码很感兴趣。我的问题是这样的,我没有访问SPARC机器的权限,是否有办法在我的x86机器上运行SPARC二进制文件?我已经看过QEMU,但我不太确定如何设置它。

9得票2回答
拆解的gcc输出似乎执行了“call 0”而不是“call function-offset”,但是可以正常工作。

我刚刚查看了从这个C程序得到的非常简单的SPARC汇编输出: int addition_func(int a, int b) { return(a+b); } void main() { int a = 20; int b = 19; int res; res = addi...

9得票1回答
Boost C++库支持Solaris on Sparc吗?

我一直在研究Boost库,以便开发一个跨平台的网络服务器库。它应该可以在Windows/Linux/Solaris上使用。Boost是否支持这三个平台? 我通过谷歌搜索只找到了一些构建问题和“Boost支持大多数现代操作系统”的说法。 我对Boost还比较陌生,也许更熟悉它的人知道这个问题...

9得票1回答
在SPARC汇编中学习函数调用的基本示例

我正在学习SPARC汇编语言,下面是一个简单的示例。我对这个示例有几个问题,它展示了如何传递过程的参数。 在主要部分中,我将5设置为第一个输入参数%o0,将7设置为第二个输入参数%o1。然后,我对这些寄存器进行求和,并将结果放入%o2。接着,我调用“test”函数,在其中打印这个和。 fm...

8得票1回答
在插入外部交叉编译的SPARC Linux模块时出现重定位错误。

首先,我不是专家,请原谅我在解释时可能会出现的错误。 我正在尝试使用Sparc-Linux-GCC-4.4.2交叉编译一个外部Linux模块,用于SPARC机器。Linux内核版本为2.6.36.4-00037-g059aa91-dirty,并已使用LEON处理器的一些文件进行了修补。构建流...

7得票3回答
使用clang无法交叉编译到SPARC平台

这是情况:我需要能够从Linux机器(在Ubuntu上)编译二进制文件,这些文件可以从SPARC服务器运行。我正在尝试编译的程序非常简单: #include <stdio.h> #include <stdlib.h> int main() { printf(...