Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
NEMU
提交
9738abcc
N
NEMU
项目概览
OpenXiangShan
/
NEMU
11 个月 前同步成功
通知
7
Star
171
Fork
67
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
NEMU
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9738abcc
编写于
9月 10, 2019
作者:
Z
Zihao Yu
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix-difftest' into 'rv64'
Fix difftest See merge request projectn/nemu!5
上级
7d909173
e9d1485f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
13 addition
and
21 deletion
+13
-21
src/device/argsrom.c
src/device/argsrom.c
+0
-13
src/device/device.c
src/device/device.c
+0
-4
src/monitor/diff-test/diff-test.c
src/monitor/diff-test/diff-test.c
+10
-0
src/monitor/monitor.c
src/monitor/monitor.c
+3
-4
未找到文件。
src/device/argsrom.c
已删除
100644 → 0
浏览文件 @
7d909173
#include "common.h"
#include "device/map.h"
#define ARGSROM_MMIO 0xa2000000
static
uint8_t
*
argsrom_base
;
char
*
get_mainargs
(
void
);
void
init_argsrom
()
{
argsrom_base
=
new_space
(
4096
);
strcpy
((
char
*
)
argsrom_base
,
get_mainargs
());
add_mmio_map
(
"argsrom"
,
ARGSROM_MMIO
,
argsrom_base
,
4096
,
NULL
);
}
src/device/device.c
浏览文件 @
9738abcc
#include "common.h"
void
init_argsrom
();
#ifdef HAS_IOE
#include <sys/time.h>
...
...
@@ -65,7 +63,6 @@ void sdl_clear_event_queue() {
}
void
init_device
()
{
init_argsrom
();
init_serial
();
init_timer
();
init_vga
();
...
...
@@ -85,7 +82,6 @@ void init_device() {
#else
void
init_device
()
{
init_argsrom
();
}
#endif
/* HAS_IOE */
src/monitor/diff-test/diff-test.c
浏览文件 @
9738abcc
...
...
@@ -17,6 +17,14 @@ static bool is_detach = false;
void
difftest_skip_ref
()
{
if
(
is_detach
)
return
;
is_skip_ref
=
true
;
// If such an instruction is one of the instruction packing in QEMU
// (see below), we end the process of catching up with QEMU's pc to
// keep the consistent behavior in our best.
// Note that this is still not perfect: if the packed instructions
// already write some memory, and the incoming instruction in NEMU
// will load that memory, we will encounter false negative. But such
// situation is infrequent.
skip_dut_nr_instr
=
0
;
}
// this is used to deal with instruction packing in QEMU.
...
...
@@ -70,6 +78,8 @@ void init_difftest(char *ref_so_file, long img_size) {
ref_difftest_init
();
ref_difftest_memcpy_from_dut
(
PC_START
,
guest_to_host
(
IMAGE_START
),
img_size
);
char
*
mainargs
=
guest_to_host
(
0
);
ref_difftest_memcpy_from_dut
(
PC_START
-
IMAGE_START
,
mainargs
,
strlen
(
mainargs
)
+
1
);
ref_difftest_setregs
(
&
cpu
);
}
...
...
src/monitor/monitor.c
浏览文件 @
9738abcc
...
...
@@ -55,6 +55,9 @@ static inline long load_img() {
assert
(
ret
==
1
);
fclose
(
fp
);
// mainargs
strcpy
(
guest_to_host
(
0
),
mainargs
);
}
return
size
;
}
...
...
@@ -77,10 +80,6 @@ static inline void parse_args(int argc, char *argv[]) {
}
}
char
*
get_mainargs
(
void
)
{
return
mainargs
;
}
int
init_monitor
(
int
argc
,
char
*
argv
[])
{
/* Perform some global initialization. */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录