qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [6507] Add calls to initialize VSCR on appropriate machines


From: Aurelien Jarno
Subject: [Qemu-devel] [6507] Add calls to initialize VSCR on appropriate machines
Date: Tue, 03 Feb 2009 19:55:59 +0000

Revision: 6507
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6507
Author:   aurel32
Date:     2009-02-03 19:55:59 +0000 (Tue, 03 Feb 2009)

Log Message:
-----------
Add calls to initialize VSCR on appropriate machines

Signed-off-by: Nathan Froyd <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>

Modified Paths:
--------------
    trunk/target-ppc/translate_init.c

Modified: trunk/target-ppc/translate_init.c
===================================================================
--- trunk/target-ppc/translate_init.c   2009-02-03 19:55:51 UTC (rev 6506)
+++ trunk/target-ppc/translate_init.c   2009-02-03 19:55:59 UTC (rev 6507)
@@ -472,6 +472,14 @@
 }
 #endif
 
+static inline void vscr_init (CPUPPCState *env, uint32_t val)
+{
+    env->vscr = val;
+    /* Altivec always uses round-to-nearest */
+    set_float_rounding_mode(float_round_nearest_even, &env->vec_status);
+    set_flush_to_zero(vscr_nj, &env->vec_status);
+}
+
 #if defined(CONFIG_USER_ONLY)
 #define spr_register(env, num, name, uea_read, uea_write,                     \
                      oea_read, oea_write, initial_value)                      \
@@ -1220,6 +1228,8 @@
                  SPR_NOACCESS, SPR_NOACCESS,
                  &spr_read_generic, &spr_write_generic,
                  0x00000000);
+    /* Not strictly an SPR */
+    vscr_init(env, 0x00010000);
 }
 
 static void gen_l3_ctrl (CPUPPCState *env)
@@ -5919,6 +5929,9 @@
     env->icache_line_size = 128;
     /* Allocate hardware IRQ controller */
     ppc970_irq_init(env);
+    /* Can't find information on what this should be on reset.  This
+     * value is the one used by 74xx processors. */
+    vscr_init(env, 0x00010000);
 }
 
 /* PowerPC 970FX (aka G5)                                                    */
@@ -6005,6 +6018,9 @@
     env->icache_line_size = 128;
     /* Allocate hardware IRQ controller */
     ppc970_irq_init(env);
+    /* Can't find information on what this should be on reset.  This
+     * value is the one used by 74xx processors. */
+    vscr_init(env, 0x00010000);
 }
 
 /* PowerPC 970 GX                                                            */
@@ -6091,6 +6107,9 @@
     env->icache_line_size = 128;
     /* Allocate hardware IRQ controller */
     ppc970_irq_init(env);
+    /* Can't find information on what this should be on reset.  This
+     * value is the one used by 74xx processors. */
+    vscr_init(env, 0x00010000);
 }
 
 /* PowerPC 970 MP                                                            */
@@ -6177,6 +6196,9 @@
     env->icache_line_size = 128;
     /* Allocate hardware IRQ controller */
     ppc970_irq_init(env);
+    /* Can't find information on what this should be on reset.  This
+     * value is the one used by 74xx processors. */
+    vscr_init(env, 0x00010000);
 }
 
 /* PowerPC 620                                                               */






reply via email to

[Prev in Thread] Current Thread [Next in Thread]