|
|
|
|
 求助mips1和mips2指令集得差别 - lotsnow [ 2007-08-22 11:39 | 168 byte(s)]
 Re: 求助mips1和mips2指令集得差别 - shy828301 [ 2007-08-22 13:40 | 178 byte(s)]
 Re: 求助mips1和mips2指令集得差别 - lotsnow [ 2007-08-29 11:50 | 548 byte(s)]
 Re: 求助mips1和mips2指令集得差别 - 1help1 [ 2008-06-30 15:17 | 115 byte(s)]
 Re: 求助mips1和mips2指令集得差别 - 1help1 [ 2008-06-30 16:44 | 295 byte(s)]
 Re: 求助mips1和mips2指令集得差别 - 1help1 [ 2008-06-30 17:25 | 377 byte(s)]
 Re: 求助mips1和mips2指令集得差别 - leil [ 2007-08-29 20:23 | 107 byte(s)]
 Re: 求助mips1和mips2指令集得差别 - lotsnow [ 2007-08-31 01:29 | 162 byte(s)]
 Re: 求助mips1和mips2指令集得差别 - lotsnow [ 2007-08-23 04:59 | 8 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
|
MIPS官网上应该有指令集手册,但是不会把I和II的分开列,没一条指令下面应该有注释,注明可以在哪个版本里面用。还于一个比较笨的办法是看gas的代码,里面有一个指令表,每条指令标的很清楚。
|
|
|
----
我的blog:http://hi.baidu.com/juventus
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
谢谢你,我在binutils的mips-opc.c文件里找到了。另外还要请教一个问题:
我在构建交叉编译环境时,加了选项-mabi=32 -march=r3000 -mtune=r3000编译了gcc,在编译glibc时也用CFLAGS=-mabi=32 -march=r3000 -mtune=r3000 -O2。 但是反汇编libc.so.6之后,有两个指令不是r3000的。分别是0x7c03e83b(应该是rdhwr)和sync两个。 有两个问题请教
0x7c03e83b是r3000预留指令,可以通过kernel trap处理,那么有没有办法在编译时不生成这个指令?
sync是r3900和mips2的指令,不知道为什么会出现在r3000里,请问有没有办法不生成这个指令?
多谢!
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
现在只要用NPTL就会产生rdhwr和sync指令,而且是直接用汇编语言写的,所以gcc不能处理了。rdhwr只能用kernel来trap了。不知道rdhwr跟move的区别,为什么不能用move来替换掉?
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
跟踪了一下,对于没有实现rdhwr的CPU,指向这个指令会 产生RI的exception。
然后0x80000180 -> handle_ri_rdhwr
handle_ri_rdhwr 会模拟rdhwr指令。
所以即使CPU没有实现这条指令,glibc 产生这条指令也是没有问题的。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
|