[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 11/24] target-alpha: Merge HW_REI and HW_RET impleme
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH 11/24] target-alpha: Merge HW_REI and HW_RET implementations. |
Date: |
Tue, 19 Apr 2011 08:04:48 -0700 |
Signed-off-by: Richard Henderson <address@hidden>
---
target-alpha/translate.c | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index 7c90ad9..c8ef31d 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -2939,14 +2939,24 @@ static ExitStatus translate_one(DisasContext *ctx,
uint32_t insn)
break;
#endif
case 0x1E:
- /* HW_REI (PALcode) */
+ /* HW_RET (PALcode) */
#if defined (CONFIG_USER_ONLY)
goto invalid_opc;
#else
if (!ctx->pal_mode)
goto invalid_opc;
- gen_helper_hw_ret(cpu_ir[rb]);
- break;
+ if (rb == 31) {
+ /* Pre-EV6 CPUs interpreted this as HW_REI, loading the return
+ address from EXC_ADDR. This turns out to be useful for our
+ emulation PALcode, so continue to accept it. */
+ TCGv tmp = tcg_temp_new();
+ tcg_gen_ld_i64(tmp, cpu_env, offsetof(CPUState, exc_addr));
+ gen_helper_hw_ret(tmp);
+ tcg_temp_free(tmp);
+ } else {
+ gen_helper_hw_ret(cpu_ir[rb]);
+ }
+ return EXIT_PC_UPDATED;
#endif
case 0x1F:
/* HW_ST (PALcode) */
--
1.7.3.4
- [Qemu-devel] [PATCH 00/24] Alpha system emulation, v2, Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 21/24] target-alpha: Include the PCC_OFS in the RPCC return value., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 10/24] target-alpha: Tidy up arithmetic exceptions., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 09/24] target-alpha: Add IPRs to be used by the emulation PALcode., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 22/24] target-alpha: Implement TLB flush primitives., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 19/24] target-alpha: Implement cpu_alpha_handle_mmu_fault for system mode., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 05/24] target-alpha: Tidy exception constants., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 17/24] target-alpha: Implement more CALL_PAL values inline., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 11/24] target-alpha: Merge HW_REI and HW_RET implementations.,
Richard Henderson <=
- [Qemu-devel] [PATCH 24/24] target-alpha: Add SX164 emulation., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 15/24] target-alpha: All ISA checks to use TB->FLAGS., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 03/24] pci: Export pci_to_cpu_addr., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 14/24] target-alpha: Add various symbolic constants., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 12/24] target-alpha: Implement do_interrupt for system mode., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 01/24] Export the unassigned_mem read/write functions., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 23/24] target-alpha: Enable the alpha-softmmu target., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 16/24] target-alpha: Disable interrupts properly., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 08/24] target-alpha: Fixup translation of PALmode instructions., Richard Henderson, 2011/04/19
- [Qemu-devel] [PATCH 06/24] target-alpha: Rationalize internal processor registers., Richard Henderson, 2011/04/19