From: Richard Henderson <rth@twiddle.net>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 15/33] target-alpha: Merge HW_REI and HW_RET implementations.
Date: Thu, 28 Apr 2011 13:50:57 -0700 [thread overview]
Message-ID: <1304023875-25040-16-git-send-email-rth@twiddle.net> (raw)
In-Reply-To: <1304023875-25040-1-git-send-email-rth@twiddle.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
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 9e1576d..09edb0f 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -2943,14 +2943,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.4.4
next prev parent reply other threads:[~2011-04-28 20:51 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-28 20:50 [Qemu-devel] [PATCH 00/33] Alpha system emulation, v3 Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 01/33] Export the unassigned_mem read/write functions Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 02/33] gdbserver: Don't deliver TIMER interrupts when SSTEP_NOIRQ either Richard Henderson
2011-04-29 20:53 ` Blue Swirl
2011-04-29 22:39 ` Richard Henderson
2011-04-30 6:35 ` Blue Swirl
2011-04-28 20:50 ` [Qemu-devel] [PATCH 03/33] target-alpha: Disassemble EV6 PALcode instructions Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 04/33] pci: Export pci_to_cpu_addr Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 05/33] target-alpha: Single-step properly across branches Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 06/33] target-alpha: Remove partial support for palcode emulation Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 07/33] target-alpha: Enable the alpha-softmmu target Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 08/33] target-alpha: Tidy exception constants Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 09/33] target-alpha: Rationalize internal processor registers Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 10/33] target-alpha: Cleanup MMU modes Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 11/33] target-alpha: Fixup translation of PALmode instructions Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 12/33] target-alpha: Add IPRs to be used by the emulation PALcode Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 13/33] target-alpha: Tidy up arithmetic exceptions Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 14/33] target-alpha: Use do_restore_state for " Richard Henderson
2011-04-28 20:50 ` Richard Henderson [this message]
2011-04-28 20:50 ` [Qemu-devel] [PATCH 16/33] target-alpha: Implement do_interrupt for system mode Richard Henderson
2011-04-28 20:50 ` [Qemu-devel] [PATCH 17/33] target-alpha: Swap shadow registers moving to/from PALmode Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 18/33] target-alpha: Add various symbolic constants Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 19/33] target-alpha: Use kernel mmu_idx for pal_mode Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 20/33] target-alpha: All ISA checks to use TB->FLAGS Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 21/33] target-alpha: Disable interrupts properly Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 22/33] target-alpha: Implement more CALL_PAL values inline Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 23/33] target-alpha: Implement cpu_alpha_handle_mmu_fault for system mode Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 24/33] target-alpha: Remap PIO space for 43-bit KSEG for EV6 Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 25/33] target-alpha: Trap for unassigned and unaligned addresses Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 26/33] target-alpha: Include the PCC_OFS in the RPCC return value Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 27/33] target-alpha: Use a fixed frequency for the RPCC in system mode Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 28/33] target-alpha: Implement TLB flush primitives Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 29/33] target-alpha: Add custom PALcode image for CLIPPER emulation Richard Henderson
2011-04-29 9:13 ` Peter Maydell
2011-04-29 13:13 ` Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 30/33] target-alpha: Add " Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 31/33] target-alpha: Implement WAIT IPR Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 32/33] target-alpha: Implement HALT IPR Richard Henderson
2011-04-28 20:51 ` [Qemu-devel] [PATCH 33/33] target-alpha: Add high-resolution access to wall clock and an alarm Richard Henderson
2011-04-29 8:36 ` [Qemu-devel] [PATCH 00/33] Alpha system emulation, v3 Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1304023875-25040-16-git-send-email-rth@twiddle.net \
--to=rth@twiddle.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).