提交 7d307e9e 编写于 作者: T ths

Enforce proper sign extension for lwl/lwr on MIPS64.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3430 c046a42c-6fe2-441c-8c8c-71466251a162
上级 67fc07d3
...@@ -89,7 +89,7 @@ void glue(op_lwl, MEMSUFFIX) (void) ...@@ -89,7 +89,7 @@ void glue(op_lwl, MEMSUFFIX) (void)
target_ulong tmp; target_ulong tmp;
tmp = glue(ldub, MEMSUFFIX)(T0); tmp = glue(ldub, MEMSUFFIX)(T0);
T1 = (int32_t)((T1 & 0x00FFFFFF) | (tmp << 24)); T1 = (T1 & 0x00FFFFFF) | (tmp << 24);
if (GET_LMASK(T0) <= 2) { if (GET_LMASK(T0) <= 2) {
tmp = glue(ldub, MEMSUFFIX)(GET_OFFSET(T0, 1)); tmp = glue(ldub, MEMSUFFIX)(GET_OFFSET(T0, 1));
...@@ -105,6 +105,7 @@ void glue(op_lwl, MEMSUFFIX) (void) ...@@ -105,6 +105,7 @@ void glue(op_lwl, MEMSUFFIX) (void)
tmp = glue(ldub, MEMSUFFIX)(GET_OFFSET(T0, 3)); tmp = glue(ldub, MEMSUFFIX)(GET_OFFSET(T0, 3));
T1 = (T1 & 0xFFFFFF00) | tmp; T1 = (T1 & 0xFFFFFF00) | tmp;
} }
T1 = (int32_t)T1;
RETURN(); RETURN();
} }
...@@ -129,6 +130,7 @@ void glue(op_lwr, MEMSUFFIX) (void) ...@@ -129,6 +130,7 @@ void glue(op_lwr, MEMSUFFIX) (void)
tmp = glue(ldub, MEMSUFFIX)(GET_OFFSET(T0, -3)); tmp = glue(ldub, MEMSUFFIX)(GET_OFFSET(T0, -3));
T1 = (T1 & 0x00FFFFFF) | (tmp << 24); T1 = (T1 & 0x00FFFFFF) | (tmp << 24);
} }
T1 = (int32_t)T1;
RETURN(); RETURN();
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册