Closed Crypeter closed 1 month ago
试了下,nemu的速度感觉没慢太多,效果不错。
#if defined(__ISA_X86__)
char *ARCH_OBJDUMP = "i386-linux-gnu-objdump";
char *obj_arch = "i386";
#elif defined(__ISA_MIPS32__)
char *ARCH_OBJDUMP = "mips-linux-gnu-objdump";
char *obj_arch = "mips";
#elif defined(__ISA_RISCV32__)
char *ARCH_OBJDUMP = "riscv32-unknown-elf-objdump";
char *obj_arch = "riscv:rv32";
#elif defined(__ISA_RISCV64__)
char *ARCH_OBJDUMP = "riscv64-unknown-elf-objdump";
char *obj_arch = "riscv:rv64";
#elif defined(__ISA_LOONGARCH32R__)
char *ARCH_OBJDUMP = "loongarch32r-linux-gnusf-objdump";
char *obj_arch = "loongarch32";
#elif
# error unsupported ISA __ISA__
#endif
FILE *code_bin = fopen("/tmp/code.bin","wb");
fwrite(inst,sizeof(char),4,code_bin);
fclose(code_bin);
char objdump_cmd[512];
snprintf(objdump_cmd, sizeof(objdump_cmd),
"%s -D -b binary /tmp/code.bin -m %s \
| grep '^[[:space:]]\\+[0-9a-f]\\+:[[:space:]]\\+[0-9a-f]\\+' \
| sed -E 's/^[[:space:]]+[0-9a-f]+:[[:space:]]+[0-9a-f ]+//g' ",
ARCH_OBJDUMP, obj_arch);
FILE *pipe = popen(objdump_cmd,"r");
int n = fread(p,sizeof(char),s->logbuf + sizeof(s->logbuf) - p,pipe);
p[n - 1] = '\0';
pclose(pipe);
试了下,nemu的速度感觉没慢太多,效果不错。
请问可以提供一下性能数据吗?
试了下,nemu的速度感觉没慢太多,效果不错。
请问可以提供一下性能数据吗?
刚跑了下microbench,连test都很难跑出结果。昨天简单测试了几个cpu test,感觉性能差在可接受范围。实测发现,该方案不太现实。
感谢测试, 由于效果不佳, 这个issue先关闭了.
以龙芯为例,依赖于对应工具链的objdump