Use the same offset for all STR and STM instructions that store r15, as specified...
authorbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 10 Jun 2007 13:53:18 +0000 (13:53 +0000)
committerbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 10 Jun 2007 13:53:18 +0000 (13:53 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2970 c046a42c-6fe2-441c-8c8c-71466251a162

target-arm/translate.c

index 364f4ea..246839d 100644 (file)
@@ -2837,8 +2837,8 @@ static void disas_arm_insn(CPUState * env, DisasContext *s)
                         } else {
                             /* store */
                             if (i == 15) {
-                                /* special case: r15 = PC + 12 */
-                                val = (long)s->pc + 8;
+                                /* special case: r15 = PC + 8 */
+                                val = (long)s->pc + 4;
                                 gen_op_movl_TN_im[0](val);
                             } else if (user) {
                                 gen_op_movl_T0_user(i);