aboutsummaryrefslogtreecommitdiffstats
path: root/package/devel/valgrind/patches/120-mips_fix_soft_float.patch
blob: a407a9311ebb10adcd0f1cb8a9bb07ae979d38c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
--- a/VEX/priv/guest_mips_helpers.c
+++ b/VEX/priv/guest_mips_helpers.c
@@ -1201,6 +1201,7 @@ extern UInt mips_dirtyhelper_calculate_F
                                                    flt_op inst )
 {
    UInt ret = 0;
+#ifndef __mips_soft_float
 #if defined(__mips__)
    VexGuestMIPS32State* guest_state = (VexGuestMIPS32State*)gs;
    UInt loFsVal, hiFsVal, loFtVal, hiFtVal;
@@ -1320,6 +1321,7 @@ extern UInt mips_dirtyhelper_calculate_F
          break;
    }
 #endif
+#endif
    return ret;
 }
 
@@ -1329,6 +1331,7 @@ extern UInt mips_dirtyhelper_calculate_F
                                                    flt_op inst )
 {
    UInt ret = 0;
+#ifndef __mips_soft_float
 #if defined(__mips__)
 #if defined(VGA_mips32)
    VexGuestMIPS32State* guest_state = (VexGuestMIPS32State*)gs;
@@ -1439,6 +1442,7 @@ extern UInt mips_dirtyhelper_calculate_F
          break;
    }
 #endif
+#endif
    return ret;
 }
 
--- a/coregrind/m_machine.c
+++ b/coregrind/m_machine.c
@@ -1652,6 +1652,7 @@ Bool VG_(machine_get_hwcaps)( void )
         }
      }
 
+#ifndef __mips_soft_float
      /* Check if CPU has FPU and 32 dbl. prec. FP registers */
      int FIR = 0;
      __asm__ __volatile__(
@@ -1661,6 +1662,7 @@ Bool VG_(machine_get_hwcaps)( void )
      if (FIR & (1 << FP64)) {
         vai.hwcaps |= VEX_PRID_CPU_32FPR;
      }
+#endif
 
      VG_(convert_sigaction_fromK_to_toK)(&saved_sigill_act, &tmp_sigill_act);
      VG_(sigaction)(VKI_SIGILL, &tmp_sigill_act, NULL);