[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-stable] [PATCH v1 2/4] target-arm: A64: Handle blr lr (fwd)
From: |
Edgar E. Iglesias |
Subject: |
[Qemu-stable] [PATCH v1 2/4] target-arm: A64: Handle blr lr (fwd) |
Date: |
Fri, 2 May 2014 00:33:14 +0000 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
----- Forwarded message from "Edgar E. Iglesias" <address@hidden> -----
From: "Edgar E. Iglesias" <address@hidden>
To: address@hidden
CC: address@hidden, address@hidden
Date: Thu, 1 May 2014 11:27:57 +1000
X-Mailer: git-send-email 1.8.3.2
Subject: [PATCH v1 2/4] target-arm: A64: Handle blr lr
From: "Edgar E. Iglesias" <address@hidden>
For linked branches, the writeback to the link register happens
conceptually after the read of the branch target register.
Signed-off-by: Edgar E. Iglesias <address@hidden>
---
target-arm/translate-a64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c
index d86b8ff..a65677d 100644
--- a/target-arm/translate-a64.c
+++ b/target-arm/translate-a64.c
@@ -1504,6 +1504,7 @@ static void disas_uncond_b_reg(DisasContext *s, uint32_t
insn)
return;
}
+ tcg_gen_mov_i64(cpu_pc, cpu_reg(s, rn));
switch (opc) {
case 0: /* BR */
case 2: /* RET */
@@ -1527,7 +1528,6 @@ static void disas_uncond_b_reg(DisasContext *s, uint32_t
insn)
return;
}
- tcg_gen_mov_i64(cpu_pc, cpu_reg(s, rn));
s->is_jmp = DISAS_JUMP;
}
--
1.8.3.2
----- End forwarded message -----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-stable] [PATCH v1 2/4] target-arm: A64: Handle blr lr (fwd),
Edgar E. Iglesias <=