龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 4094|回复: 11

怎么在源代码里面识别当前MIPS的各种架构信息?

[复制链接]
发表于 2012-7-2 19:54:58 | 显示全部楼层 |阅读模式
C语言的。
我只知道 __mips__ 这一个……
我想知道怎么识别是 mipsel 还是 mipseb ?mips64el 和 mipsel?还有 ABI 是 O32 还是 N32 还是 N64 还是 O64 ?
现在很多C源代码对于mips的识别都没有,我想给他们添加识别结果我都不知道用什么……
发表于 2012-7-3 09:17:43 | 显示全部楼层
C语言不分架构吧,
区分是看你用什么架构的编译器。
 楼主| 发表于 2012-7-4 08:02:10 | 显示全部楼层
问题就是我要在源代码里面根据当前编译的架构和ABI进行不同的定义和算法处理。
发表于 2012-7-5 10:42:09 | 显示全部楼层
想得太细了吧?
 楼主| 发表于 2012-7-5 17:15:56 | 显示全部楼层
什么叫想的太细啊?你总不能在 O32 里面用 64 位指针吧?64 位和32 位某些变量长度不同的。
他要完全一样,还用得着分 O32 N32 N64 O64 吗?
 楼主| 发表于 2012-7-14 16:26:48 | 显示全部楼层
连龙芯开发组自己人都不知道吗?????
发表于 2012-7-18 14:52:47 | 显示全部楼层
龙芯有开发组吗?
是不是小霸王学习机的那帮人?
 楼主| 发表于 2012-7-19 09:26:13 | 显示全部楼层
龙芯能有小霸王那么牛插的开发组那现在还不遍地的龙芯设备?
 楼主| 发表于 2012-7-19 09:53:24 | 显示全部楼层
貌似目前只能靠
touch foo.h; cpp -dM foo.h
里面的信息来推测了
 楼主| 发表于 2012-7-19 10:14:59 | 显示全部楼层
#elif defined(__mips64) && defined(__MIPSEL)
这就是 mips64el 了。如果是 32bit ,是没有 __mips64 而只有 __mips__
n32 和 n64 都是这个结果,
如果还要 abi (区别 n64 还是 n32 )还有:
#define _ABI64 3
#define _MIPS_SIM _ABI64
#define _ABIO32 1
#define _MIPS_SIM _ABIO32
#define _MIPS_SIM _ABIN32
#define _ABIN32 2
除了这3个,应该还有一个 _ABIO64 ,不过我没看他的相关预定义的是什么。

本版积分规则

小黑屋|手机版|Archiver|Lemote Inc.  

GMT+8, 2019-9-16 06:36 , Processed in 0.200717 second(s), 20 queries .

快速回复 返回顶部 返回列表