From 9fceefa7d12c832c4da69737ce216c415309a7c3 Mon Sep 17 00:00:00 2001
From: j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>
Date: Fri, 2 Nov 2007 22:47:50 +0000
Subject: [PATCH] Don't print any message when a priviledge exception occurs on
 mfpvr as the Linux allows applications to read this register.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3510 c046a42c-6fe2-441c-8c8c-71466251a162
---
 target-ppc/translate.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 015a6215a3..3b1c9919aa 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -3550,11 +3550,17 @@ static always_inline void gen_op_mfspr (DisasContext *ctx)
             gen_op_store_T0_gpr(rD(ctx->opcode));
         } else {
             /* Privilege exception */
-            if (loglevel != 0) {
-                fprintf(logfile, "Trying to read privileged spr %d %03x\n",
-                        sprn, sprn);
+            /* This is a hack to avoid warnings when running Linux:
+             * this OS breaks the PowerPC virtualisation model,
+             * allowing userland application to read the PVR
+             */
+            if (sprn != SPR_PVR) {
+                if (loglevel != 0) {
+                    fprintf(logfile, "Trying to read privileged spr %d %03x\n",
+                            sprn, sprn);
+                }
+                printf("Trying to read privileged spr %d %03x\n", sprn, sprn);
             }
-            printf("Trying to read privileged spr %d %03x\n", sprn, sprn);
             GEN_EXCP_PRIVREG(ctx);
         }
     } else {