Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
NEMU
提交
b51f5e5a
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,发现更多精彩内容 >>
提交
b51f5e5a
编写于
4月 20, 2020
作者:
Z
Zihao Yu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remote rtl_kill()
上级
8fb07d1d
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
0 addition
and
50 deletion
+0
-50
src/engine/interpreter/rtl-basic.h
src/engine/interpreter/rtl-basic.h
+0
-6
src/engine/rv64/rtl-basic.h
src/engine/rv64/rtl-basic.h
+0
-3
src/engine/rv64/rv64-backend/rtl-basic.c
src/engine/rv64/rv64-backend/rtl-basic.c
+0
-7
src/isa/mips32/exec/compute.h
src/isa/mips32/exec/compute.h
+0
-3
src/isa/mips32/exec/ldst.h
src/isa/mips32/exec/ldst.h
+0
-27
src/isa/mips32/exec/muldiv.h
src/isa/mips32/exec/muldiv.h
+0
-4
未找到文件。
src/engine/interpreter/rtl-basic.h
浏览文件 @
b51f5e5a
...
...
@@ -126,10 +126,4 @@ static inline make_rtl(jrelop, uint32_t relop,
if
(
is_jmp
)
rtl_j
(
s
,
target
);
}
/* Pseudo instructions */
static
inline
make_rtl
(
kill
,
const
rtlreg_t
*
src1
)
{
// do nothing
}
#endif
src/engine/rv64/rtl-basic.h
浏览文件 @
b51f5e5a
...
...
@@ -46,7 +46,4 @@ make_rtl(j, vaddr_t target);
make_rtl
(
jr
,
rtlreg_t
*
target
);
make_rtl
(
jrelop
,
uint32_t
relop
,
const
rtlreg_t
*
src1
,
const
rtlreg_t
*
src2
,
vaddr_t
target
);
/* Pseudo instructions */
make_rtl
(
kill
,
const
rtlreg_t
*
src1
);
#endif
src/engine/rv64/rv64-backend/rtl-basic.c
浏览文件 @
b51f5e5a
...
...
@@ -449,10 +449,3 @@ make_rtl(jrelop, uint32_t relop, const rtlreg_t *src1, const rtlreg_t *src2, vad
Assert
(
new_idx
-
old_idx
==
5
,
"if this condition is broken, "
"you should also modify rv64_exec_trans_buffer() in exec.c"
);
}
make_rtl
(
kill
,
const
rtlreg_t
*
src1
)
{
#ifdef REG_SPILLING
uint32_t
varidx
=
rtlreg2varidx
(
s
,
src1
);
spill_flush
(
varidx
);
#endif
}
src/isa/mips32/exec/compute.h
浏览文件 @
b51f5e5a
...
...
@@ -110,12 +110,9 @@ static inline void mux(DecodeExecState *s, rtlreg_t* dest, const rtlreg_t* cond,
rtl_setrelopi
(
s
,
RELOP_EQ
,
s0
,
cond
,
0
);
rtl_subi
(
s
,
s0
,
s0
,
1
);
// s0 = mask
rtl_kill
(
s
,
cond
);
rtl_and
(
s
,
s1
,
src1
,
s0
);
rtl_not
(
s
,
s0
,
s0
);
rtl_kill
(
s
,
s1
);
rtl_and
(
s
,
dest
,
src2
,
s0
);
rtl_kill
(
s
,
s0
);
rtl_or
(
s
,
dest
,
dest
,
s1
);
}
...
...
src/isa/mips32/exec/ldst.h
浏览文件 @
b51f5e5a
...
...
@@ -3,7 +3,6 @@
static
inline
make_EHelper
(
ld
)
{
rtl_lm
(
s
,
s0
,
dsrc1
,
id_src2
->
imm
,
s
->
width
);
check_mem_ex
();
rtl_kill
(
s
,
dsrc1
);
rtl_sr
(
s
,
id_dest
->
reg
,
s0
,
4
);
print_Dop
(
id_src1
->
str
,
OP_STR_SIZE
,
"%d(%s)"
,
id_src2
->
imm
,
reg_name
(
id_src1
->
reg
,
4
));
...
...
@@ -19,7 +18,6 @@ static inline make_EHelper(ld) {
static
inline
make_EHelper
(
lds
)
{
rtl_lm
(
s
,
s0
,
dsrc1
,
id_src2
->
imm
,
s
->
width
);
check_mem_ex
();
rtl_kill
(
s
,
dsrc1
);
rtl_sext
(
s
,
ddest
,
s0
,
s
->
width
);
print_Dop
(
id_src1
->
str
,
OP_STR_SIZE
,
"%d(%s)"
,
id_src2
->
imm
,
reg_name
(
id_src1
->
reg
,
4
));
...
...
@@ -46,8 +44,6 @@ static inline make_EHelper(st) {
static
inline
make_EHelper
(
swl
)
{
rtl_addi
(
s
,
s0
,
dsrc1
,
id_src2
->
imm
);
rtl_kill
(
s
,
dsrc1
);
// mem.shamt2
rtl_andi
(
s
,
s1
,
s0
,
0x3
);
rtl_shli
(
s
,
s1
,
s1
,
3
);
...
...
@@ -67,20 +63,15 @@ static inline make_EHelper(swl) {
rtl_subi
(
s
,
s1
,
s1
,
24
);
rtl_neg
(
s
,
s1
,
s1
);
rtl_kill
(
s
,
s0
);
// prepare register data
rtl_shr
(
s
,
s1
,
ddest
,
s1
);
// merge the word
rtl_or
(
s
,
s1
,
s0
,
s1
);
rtl_kill
(
s
,
s1
);
// write back
rtl_addi
(
s
,
s0
,
dsrc1
,
id_src2
->
imm
);
rtl_andi
(
s
,
s0
,
s0
,
~
0x3u
);
rtl_kill
(
s
,
dsrc1
);
rtl_sm
(
s
,
s0
,
0
,
s1
,
4
);
check_mem_ex
();
...
...
@@ -91,8 +82,6 @@ static inline make_EHelper(swl) {
static
inline
make_EHelper
(
swr
)
{
rtl_addi
(
s
,
s0
,
dsrc1
,
id_src2
->
imm
);
rtl_kill
(
s
,
dsrc1
);
// mem.shmat2
rtl_andi
(
s
,
s1
,
s0
,
0x3
);
rtl_shli
(
s
,
s1
,
s1
,
3
);
...
...
@@ -114,20 +103,15 @@ static inline make_EHelper(swr) {
rtl_subi
(
s
,
s1
,
s1
,
24
);
rtl_neg
(
s
,
s1
,
s1
);
rtl_kill
(
s
,
s0
);
// prepare register data
rtl_shl
(
s
,
s1
,
ddest
,
s1
);
// merge the word
rtl_or
(
s
,
s1
,
s0
,
s1
);
rtl_kill
(
s
,
s1
);
// write back
rtl_addi
(
s
,
s0
,
dsrc1
,
id_src2
->
imm
);
rtl_andi
(
s
,
s0
,
s0
,
~
0x3u
);
rtl_kill
(
s
,
dsrc1
);
rtl_sm
(
s
,
s0
,
0
,
s1
,
4
);
check_mem_ex
();
...
...
@@ -138,8 +122,6 @@ static inline make_EHelper(swr) {
static
inline
make_EHelper
(
lwl
)
{
rtl_addi
(
s
,
s0
,
dsrc1
,
id_src2
->
imm
);
rtl_kill
(
s
,
dsrc1
);
// mem.shmat2
rtl_andi
(
s
,
s1
,
s0
,
0x3
);
rtl_shli
(
s
,
s1
,
s1
,
3
);
...
...
@@ -158,16 +140,12 @@ static inline make_EHelper(lwl) {
rtl_subi
(
s
,
s1
,
s1
,
24
);
rtl_neg
(
s
,
s1
,
s1
);
rtl_kill
(
s
,
s0
);
// prepare register data
rtl_shli
(
s
,
ddest
,
ddest
,
8
);
// shift 8 bit
rtl_shl
(
s
,
ddest
,
ddest
,
s1
);
// second shift
rtl_shr
(
s
,
ddest
,
ddest
,
s1
);
// shift back
rtl_shri
(
s
,
ddest
,
ddest
,
8
);
// shift 8 bit
rtl_kill
(
s
,
s1
);
// merge the word
rtl_or
(
s
,
ddest
,
s0
,
ddest
);
...
...
@@ -178,8 +156,6 @@ static inline make_EHelper(lwl) {
static
inline
make_EHelper
(
lwr
)
{
rtl_addi
(
s
,
s0
,
dsrc1
,
id_src2
->
imm
);
rtl_kill
(
s
,
dsrc1
);
// mem.shmat2
rtl_andi
(
s
,
s1
,
s0
,
0x3
);
rtl_shli
(
s
,
s1
,
s1
,
3
);
...
...
@@ -195,7 +171,6 @@ static inline make_EHelper(lwr) {
// reg.shmat = 24 - mem.shmat2
rtl_subi
(
s
,
s1
,
s1
,
24
);
rtl_neg
(
s
,
s1
,
s1
);
rtl_kill
(
s
,
s0
);
// prepare register data
rtl_shri
(
s
,
ddest
,
ddest
,
8
);
// shift 8 bit
...
...
@@ -203,8 +178,6 @@ static inline make_EHelper(lwr) {
rtl_shl
(
s
,
ddest
,
ddest
,
s1
);
// shift back
rtl_shli
(
s
,
ddest
,
ddest
,
8
);
// shift 8 bit
rtl_kill
(
s
,
s1
);
// merge the word
rtl_or
(
s
,
ddest
,
s0
,
ddest
);
...
...
src/isa/mips32/exec/muldiv.h
浏览文件 @
b51f5e5a
...
...
@@ -25,28 +25,24 @@ static inline make_EHelper(mul) {
static
inline
make_EHelper
(
mult
)
{
rtl_imul_lo
(
s
,
&
cpu
.
lo
,
dsrc1
,
dsrc2
);
rtl_kill
(
s
,
&
cpu
.
lo
);
rtl_imul_hi
(
s
,
&
cpu
.
hi
,
dsrc1
,
dsrc2
);
print_asm_template3
(
mult
);
}
static
inline
make_EHelper
(
multu
)
{
rtl_mul_lo
(
s
,
&
cpu
.
lo
,
dsrc1
,
dsrc2
);
rtl_kill
(
s
,
&
cpu
.
lo
);
rtl_mul_hi
(
s
,
&
cpu
.
hi
,
dsrc1
,
dsrc2
);
print_asm_template3
(
multu
);
}
static
inline
make_EHelper
(
div
)
{
rtl_idiv_q
(
s
,
&
cpu
.
lo
,
dsrc1
,
dsrc2
);
rtl_kill
(
s
,
&
cpu
.
lo
);
rtl_idiv_r
(
s
,
&
cpu
.
hi
,
dsrc1
,
dsrc2
);
print_asm_template3
(
div
);
}
static
inline
make_EHelper
(
divu
)
{
rtl_div_q
(
s
,
&
cpu
.
lo
,
dsrc1
,
dsrc2
);
rtl_kill
(
s
,
&
cpu
.
lo
);
rtl_div_r
(
s
,
&
cpu
.
hi
,
dsrc1
,
dsrc2
);
print_asm_template3
(
divu
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录