aboutsummaryrefslogtreecommitdiff
path: root/target-alpha/translate.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2011-09-22 08:11:18 -0700
committerRichard Henderson <rth@twiddle.net>2011-10-08 08:46:03 -0700
commita9406ea127b0561cf95e5a4e8ce0c5e06c21e644 (patch)
tree6f8963dffae51597437e718e7ace56721aac101f /target-alpha/translate.c
parent6c731dc2af1e80c410e8605098deb1ac16ab72f0 (diff)
target-alpha: Honor icount for RPCC instruction.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target-alpha/translate.c')
-rw-r--r--target-alpha/translate.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index 1e224a2152..fb2e9e5f60 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -2721,8 +2721,16 @@ static ExitStatus translate_one(DisasContext *ctx, uint32_t insn)
break;
case 0xC000:
/* RPCC */
- if (ra != 31)
- gen_helper_load_pcc(cpu_ir[ra]);
+ if (ra != 31) {
+ if (use_icount) {
+ gen_io_start();
+ gen_helper_load_pcc(cpu_ir[ra]);
+ gen_io_end();
+ ret = EXIT_PC_STALE;
+ } else {
+ gen_helper_load_pcc(cpu_ir[ra]);
+ }
+ }
break;
case 0xE000:
/* RC */