2010年3月22日 星期一

我還需要麼,
我需要的是:
1、一個 test program。

2、列出它用到的 opcode 及 operands 的值

3、qemu 停止translate 的 opcode 以及 它的處理方式。

4、目前code gen的 overhead是否高?

5、如何確定translation function寫對?

exec.c:910
tb_link_phy_page??????

今天的進度:
1、要完成 test case 的 qemu result
2、要檢驗目前完成的 qemu

call 的

正確性!
要如何確定正確性?
我本來是想要用 qemu 的 output 來當做正確性,
就是將 translate 過後的 inst 來比較
不過這方法只要會碰到 memory 就一定會 segmentation fault,
應該沒關係吧?

另外是有關 log file 的問題,exec.c: logfilename, 及 main.c 中有 DEFAULT_LOG_FILE
需要可以讓我指定檔名。

log file 何時開啟的?
加了 logfile 的 option,可是一定要在 -d 的後面,一定!

qemu stop conditions 有 58 個 instructions:

0059 addl $1000, %eax
0065 addl $1, %eax
0066 addl %gs:0, %edx
0272 call *%gs:16
0273 call *%eax
0277 call -100149
0467 cmpsb
0768 imull -4740(%ebp)
0809 int $128
0912 jae 1
0913 jae -135
0914 ja 1
0915 ja -1163
0916 jbe 100
0917 jbe -1281
0918 jb 10
0919 jb -156
0920 jcxz 44
0921 je 1
0922 je -10119
0923 jge 107
0924 jge -1081
0925 jg 100
0926 jg -1047
0927 jle 10
0928 jle -1177
0929 jl 10
0930 jl -1285
0931 jmpl *100(%ebx)
0932 jmpl *%eax
0936 jmp 10
0937 jmp -1007
0938 jne 10
0939 jne -1012
0943 jnp -213
0944 jns 10
0945 jns -1546
0948 jp 13
0949 jp -196
0950 js 10
0951 js -1081
0987 leal (%eax,%eax), %ecx
1274 movl %eax, %gs:(%edx)
1280 movl %gs:(%eax), %eax
1281 movl %eax, %ebx
1371 movsb
1372 movsl
1424 movzwl (%eax), %eax
1469 fmuls (%eax,%ebx)
1982 ret
1983 ret $12
2059 sarl %eax
2158 shll $4, -116(%ebp)
2197 shrl $11, %edx
2264 stosb
2265 stosl
2302 subl (%eax), %ecx
2303 subl %eax, %ebx

condition code is a challenge

沒有留言:

張貼留言