免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1885 | 回复: 0

[应用] 求助mips上rdtsc 如何实现 [复制链接]

论坛徽章:
4
金牛座
日期:2013-12-12 16:11:30巨蟹座
日期:2013-12-13 10:20:3615-16赛季CBA联赛之佛山
日期:2016-11-15 13:45:3515-16赛季CBA联赛之广夏
日期:2016-11-23 19:54:58
发表于 2016-09-27 23:02 |显示全部楼层
如题, 如何在mips16上实现__x86_64__定义下的rdtsc:

static inline uint64_t
rdtsc(void)
{
#if defined(BENCHMARK_OS_MACOSX) || defined(__x86_64__) || defined(__amd64__)
        union {
                uint64_t tsc_64;
                struct {
                        uint32_t lo_32;
                        uint32_t hi_32;
                };
        } tsc;

        asm volatile("rdtsc" :
                     "=a" (tsc.lo_32),
                     "=d" (tsc.hi_32));
        return tsc.tsc_64;
#elif defined(__mips__)
        uint64_t dest;        
        //__asm__ __volatile__("mfc0 %0,$9;nop":"=r"(dest));
        return dest;
#else
#error "11111111111"
        return 0;
#endif
}

在google上搜索了半天只发现如下实现,

__asm__ __volatile__("mfc0 %0,$9;nop":"=r"(dest));

同时需要在Makfile中指定  "PKG_USE_MIPS16:=0" 编译, 否则会找不到指令"mfc0",

但是发生令人意外的结果(在AR9531上运行出现内部错误)

在此寻求各位大神,如何实现上述功能代码, 先感谢下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP