Fix scsi sector size confusion (Blue Swirl).
[qemu] / target-arm / op.c
index 35419a1..619066d 100644 (file)
@@ -885,6 +885,12 @@ void OPPROTO op_wfi(void)
     cpu_loop_exit();
 }
 
+void OPPROTO op_bkpt(void)
+{
+    env->exception_index = EXCP_BKPT;
+    cpu_loop_exit();
+}
+
 /* VFP support.  We follow the convention used for VFP instrunctions:
    Single precition routines have a "s" suffix, double precision a
    "d" suffix.  */
@@ -1088,7 +1094,7 @@ void OPPROTO op_vfp_movl_T0_fpscr(void)
 
 void OPPROTO op_vfp_movl_T0_fpscr_flags(void)
 {
-    T0 = env->vfp.fpscr & (0xf << 28);
+    T0 = env->vfp.xregs[ARM_VFP_FPSCR] & (0xf << 28);
 }
 
 void OPPROTO op_vfp_movl_fpscr_T0(void)
@@ -1096,6 +1102,16 @@ void OPPROTO op_vfp_movl_fpscr_T0(void)
     do_vfp_set_fpscr();
 }
 
+void OPPROTO op_vfp_movl_T0_xreg(void)
+{
+    T0 = env->vfp.xregs[PARAM1];
+}
+
+void OPPROTO op_vfp_movl_xreg_T0(void)
+{
+    env->vfp.xregs[PARAM1] = T0;
+}
+
 /* Move between FT0s to T0  */
 void OPPROTO op_vfp_mrs(void)
 {
@@ -1175,3 +1191,13 @@ void OPPROTO op_movl_user_T0(void)
     }
     FORCE_RET();
 }
+
+void OPPROTO op_movl_T2_T0(void)
+{
+    T2 = T0;
+}
+
+void OPPROTO op_movl_T0_T2(void)
+{
+    T0 = T2;
+}