diff options
author | Richard Henderson <rth@twiddle.net> | 2011-09-22 08:11:18 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2011-10-08 08:46:03 -0700 |
commit | a9406ea127b0561cf95e5a4e8ce0c5e06c21e644 (patch) | |
tree | 6f8963dffae51597437e718e7ace56721aac101f | |
parent | 6c731dc2af1e80c410e8605098deb1ac16ab72f0 (diff) |
target-alpha: Honor icount for RPCC instruction.
Signed-off-by: Richard Henderson <rth@twiddle.net>
-rw-r--r-- | target-alpha/translate.c | 12 |
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 */ |