提交 b70650cb 编写于 作者: A Aurelien Jarno

tcg/i386: optimize and $0xff(ff), reg

Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
上级 add16157
......@@ -281,6 +281,12 @@ static inline void tgen_arithi(TCGContext *s, int c, int r0, int32_t val)
if (val == (int8_t)val) {
tcg_out_modrm(s, 0x83, c, r0);
tcg_out8(s, val);
} else if (c == ARITH_AND && val == 0xffu && r0 < 4) {
/* movzbl */
tcg_out_modrm(s, 0xb6 | P_EXT, r0, r0);
} else if (c == ARITH_AND && val == 0xffffu) {
/* movzwl */
tcg_out_modrm(s, 0xb7 | P_EXT, r0, r0);
} else {
tcg_out_modrm(s, 0x81, c, r0);
tcg_out32(s, val);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册