Fix ARM and Thumb ldlex/stlex.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4202 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
6c95676b16
commit
72f1c62f7d
@ -6241,6 +6241,7 @@ static void disas_arm_insn(CPUState * env, DisasContext *s)
|
|||||||
if (insn & (1 << 23)) {
|
if (insn & (1 << 23)) {
|
||||||
/* load/store exclusive */
|
/* load/store exclusive */
|
||||||
gen_movl_T1_reg(s, rn);
|
gen_movl_T1_reg(s, rn);
|
||||||
|
addr = cpu_T[1];
|
||||||
if (insn & (1 << 20)) {
|
if (insn & (1 << 20)) {
|
||||||
gen_helper_mark_exclusive(cpu_env, cpu_T[1]);
|
gen_helper_mark_exclusive(cpu_env, cpu_T[1]);
|
||||||
tmp = gen_ld32(addr, IS_USER(s));
|
tmp = gen_ld32(addr, IS_USER(s));
|
||||||
@ -6991,6 +6992,7 @@ static int disas_thumb2_insn(CPUState *env, DisasContext *s, uint16_t insn_hw1)
|
|||||||
} else if ((insn & (1 << 23)) == 0) {
|
} else if ((insn & (1 << 23)) == 0) {
|
||||||
/* Load/store exclusive word. */
|
/* Load/store exclusive word. */
|
||||||
gen_movl_T1_reg(s, rn);
|
gen_movl_T1_reg(s, rn);
|
||||||
|
addr = cpu_T[1];
|
||||||
if (insn & (1 << 20)) {
|
if (insn & (1 << 20)) {
|
||||||
gen_helper_mark_exclusive(cpu_env, cpu_T[1]);
|
gen_helper_mark_exclusive(cpu_env, cpu_T[1]);
|
||||||
tmp = gen_ld32(addr, IS_USER(s));
|
tmp = gen_ld32(addr, IS_USER(s));
|
||||||
|
Loading…
Reference in New Issue
Block a user