Skip to content

jxc6698/nemulab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

所有的未处理的情况, 和已知的bug都是 标明注释 UNFIXED, 如果要寻找只需要:
find . -name "*.[ch]" | xrags grep "UNFIXED"

ubuntu 需要做的一些修改, gcc方面 testcase/c 的Makefile中
-CFLAGS  = -m32 -Wall -Werror -static -I..
+CFLAGS  = -m32 -Wall -Werror -static -I.. -fno-stack-protector

./Makefile 中
-CFLAGS  = -ggdb -MD -Wall -Werror -fno-strict-aliasing -I./include -O2
+CFLAGS  = -ggdb -MD -Wall -Wno-unused-result -Werror -fno-strict-aliasing -I./include -O2

optimize:

修要修改宏定义 如果是quiet那么就 就不要打印指令信息到assemble[]中,修改include/exec/helper.h 中 宏定义 print_asm: 应该可以部分提升效率

说不定可以去优化 rep 的操作, 不过看 i386的手册的rep的时钟周期,原来的意思应该是一次一次的去执行

print_bin_instr 函数中 使用了 swaddr_read 读取的指令 的2进制byte,但是这个接口是给数据用的啊, instr_fetch(eip)


src/ui/ui.c
	函数cmd_c中,最后 if (neme_state != END) neme_state=STOP这里的状态转移,


src/main.c
	相关参数
	debug:
	quiet:	

src/cpu/cpu-exec.c
    cpu_exec: n_temp 是 uint32 无符号数,如果传入的n是-1,就会一直执行

src/exec/misc/misc.c
    inv 函数,所有还没有实现的指令都会进入这个函数

src/exec/prefix/prefix.h
    data_size handle operand-size prefix  0x66 

src/exec/data-mov/mov.c
    mov_i2r_v all ended with v function
    use mov-template to form _b _w _l

src/exec/ins-push/
	与 push 相关的指令

src/exec/xxx

src/memory/dram.c
    ddr3_read:
    ddr3_write: 8字节吞吐

    dram_read:
    dram_write: 4字节吞吐
    
    rowbufs: 缓存
    dram: 内存

src/memory/memory.c
    hwaddr_read
    hwaddr_write
    swaddr_read
    swaddr_write
    instr_fetch get instruction, why only 1 or 2 or 4

    
src/ui/breakpoint.c
    断点的操作




include/ui/breakpoint.h
    int3, 断点的相关定义与异常

include/cpu/reg.h
    CPU_state cpu的状态信息, 寄存器




 find ./testcase/c/ -name '*[^.c|.txt|.o]' | xargs ./test.sh 


要做的
gdb 支持重新开始的时候断点依旧存在, 在重新载入程序以后要可以恢复以前的断点

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors