Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
e2c3c2c5
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e2c3c2c5
编写于
1月 16, 2013
作者:
R
Richard Henderson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
target-i386: Implement RORX
Signed-off-by:
N
Richard Henderson
<
rth@twiddle.net
>
上级
4a554890
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
0 deletion
+32
-0
target-i386/translate.c
target-i386/translate.c
+32
-0
未找到文件。
target-i386/translate.c
浏览文件 @
e2c3c2c5
...
...
@@ -4433,6 +4433,38 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,
tcg_gen_addi_ptr
(
cpu_ptr1
,
cpu_env
,
op2_offset
);
sse_fn_eppi
(
cpu_env
,
cpu_ptr0
,
cpu_ptr1
,
tcg_const_i32
(
val
));
break
;
case
0x33a
:
/* Various integer extensions at 0f 3a f[0-f]. */
b
=
modrm
|
(
b1
<<
8
);
modrm
=
cpu_ldub_code
(
env
,
s
->
pc
++
);
reg
=
((
modrm
>>
3
)
&
7
)
|
rex_r
;
switch
(
b
)
{
case
0x3f0
:
/* rorx Gy,Ey, Ib */
if
(
!
(
s
->
cpuid_7_0_ebx_features
&
CPUID_7_0_EBX_BMI2
)
||
!
(
s
->
prefix
&
PREFIX_VEX
)
||
s
->
vex_l
!=
0
)
{
goto
illegal_op
;
}
ot
=
s
->
dflag
==
2
?
OT_QUAD
:
OT_LONG
;
gen_ldst_modrm
(
env
,
s
,
modrm
,
ot
,
OR_TMP0
,
0
);
b
=
cpu_ldub_code
(
env
,
s
->
pc
++
);
if
(
ot
==
OT_QUAD
)
{
tcg_gen_rotri_tl
(
cpu_T
[
0
],
cpu_T
[
0
],
b
&
63
);
}
else
{
tcg_gen_trunc_tl_i32
(
cpu_tmp2_i32
,
cpu_T
[
0
]);
tcg_gen_rotri_i32
(
cpu_tmp2_i32
,
cpu_tmp2_i32
,
b
&
31
);
tcg_gen_extu_i32_tl
(
cpu_T
[
0
],
cpu_tmp2_i32
);
}
gen_op_mov_reg_T0
(
ot
,
reg
);
break
;
default:
goto
illegal_op
;
}
break
;
default:
goto
illegal_op
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录