cpu_single_env usage fix
[qemu] / target-sparc / op_helper.c
index e931f9a..030b2f7 100644 (file)
@@ -221,6 +221,15 @@ void do_fcmpd_fcc3 (void)
 #undef FS
 #endif
 
+#if defined(CONFIG_USER_ONLY) 
+void helper_ld_asi(int asi, int size, int sign)
+{
+}
+
+void helper_st_asi(int asi, int size, int sign)
+{
+}
+#else
 #ifndef TARGET_SPARC64
 void helper_ld_asi(int asi, int size, int sign)
 {
@@ -267,6 +276,10 @@ void helper_ld_asi(int asi, int size, int sign)
         case 4:
             ret = ldl_phys(T0 & ~3);
             break;
+        case 8:
+           ret = ldl_phys(T0 & ~3);
+           T0 = ldl_phys((T0 + 4) & ~3);
+           break;
         }
        break;
     default:
@@ -387,6 +400,10 @@ void helper_st_asi(int asi, int size, int sign)
             default:
                 stl_phys(T0 & ~3, T1);
                 break;
+            case 8:
+                stl_phys(T0 & ~3, T1);
+                stl_phys((T0 + 4) & ~3, T2);
+                break;
             }
        }
        return;
@@ -727,8 +744,8 @@ void helper_st_asi(int asi, int size, int sign)
        return;
     }
 }
-
 #endif
+#endif /* !CONFIG_USER_ONLY */
 
 #ifndef TARGET_SPARC64
 void helper_rett()
@@ -925,7 +942,7 @@ void do_interrupt(int intno)
 #endif
 #if !defined(CONFIG_USER_ONLY) 
     if (env->tl == MAXTL) {
-        cpu_abort(cpu_single_env, "Trap 0x%04x while trap level is MAXTL, Error state", env->exception_index);
+        cpu_abort(env, "Trap 0x%04x while trap level is MAXTL, Error state", env->exception_index);
        return;
     }
 #endif
@@ -979,7 +996,7 @@ void do_interrupt(int intno)
 #endif
 #if !defined(CONFIG_USER_ONLY) 
     if (env->psret == 0) {
-        cpu_abort(cpu_single_env, "Trap 0x%02x while interrupts disabled, Error state", env->exception_index);
+        cpu_abort(env, "Trap 0x%02x while interrupts disabled, Error state", env->exception_index);
        return;
     }
 #endif