diff mbox

[10/40] target-alpha: Convert opcode 0x18 to source/sink

Message ID 1397763195-1485-11-git-send-email-rth@twiddle.net
State New
Headers show

Commit Message

Richard Henderson April 17, 2014, 7:32 p.m. UTC
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 target-alpha/translate.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
diff mbox

Patch

diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index e783e80..3340916 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -2677,6 +2677,7 @@  static ExitStatus translate_one(DisasContext *ctx, uint32_t insn)
             goto invalid_opc;
         }
         break;
+
     case 0x18:
         switch ((uint16_t)disp16) {
         case 0x0000:
@@ -2705,15 +2706,14 @@  static ExitStatus translate_one(DisasContext *ctx, uint32_t insn)
             break;
         case 0xC000:
             /* RPCC */
-            if (ra != 31) {
-                if (use_icount) {
-                    gen_io_start();
-                    gen_helper_load_pcc(cpu_ir[ra], cpu_env);
-                    gen_io_end();
-                    ret = EXIT_PC_STALE;
-                } else {
-                    gen_helper_load_pcc(cpu_ir[ra], cpu_env);
-                }
+            va = dest_gpr(ctx, ra);
+            if (use_icount) {
+                gen_io_start();
+                gen_helper_load_pcc(va, cpu_env);
+                gen_io_end();
+                ret = EXIT_PC_STALE;
+            } else {
+                gen_helper_load_pcc(va, cpu_env);
             }
             break;
         case 0xE000: