]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
mips: remove support for mfc0/dmfc0
authorPetar Jovanovic <mips32r2@gmail.com>
Thu, 6 Oct 2016 13:54:12 +0000 (13:54 +0000)
committerPetar Jovanovic <mips32r2@gmail.com>
Thu, 6 Oct 2016 13:54:12 +0000 (13:54 +0000)
Remove support for mfc0/dmfc0, as these instructions are privileged
instructions and Valgrind cannot execute these.

git-svn-id: svn://svn.valgrind.org/vex/trunk@3258

VEX/priv/guest_mips_defs.h
VEX/priv/guest_mips_helpers.c
VEX/priv/guest_mips_toIR.c

index f4c3bbc90ac1d3e2995c815d496d553deb94db4e..60db3b53044db57031b6a9c27e30923e66e56fdf 100644 (file)
@@ -93,11 +93,6 @@ typedef enum {
    SUBS,     SUBD,    DIVS
 } flt_op;
 
-extern UInt mips32_dirtyhelper_mfc0 ( UInt rd, UInt sel );
-
-extern ULong mips64_dirtyhelper_dmfc0 ( UInt rd, UInt sel );
-
-
 #if defined(__mips__) && ((defined(__mips_isa_rev) && __mips_isa_rev >= 2))
 extern UInt mips32_dirtyhelper_rdhwr ( UInt rt, UInt rd );
 extern ULong mips64_dirtyhelper_rdhwr ( ULong rt, ULong rd );
index fd42513675f0cf00ecf6708f47521e6ee1966942..d04f8d828076aad6b32255e5a558c3805fe6f51d 100644 (file)
@@ -418,668 +418,6 @@ VexGuestLayout mips64Guest_layout = {
                   }
 };
 
-#define ASM_VOLATILE_CASE(rd, sel) \
-         case rd: \
-            asm volatile ("mfc0 %0, $" #rd ", "#sel"\n\t" :"=r" (x) ); \
-            break;
-
-UInt mips32_dirtyhelper_mfc0(UInt rd, UInt sel)
-{
-   UInt x = 0;
-#if defined(__mips__) && ((defined(__mips_isa_rev) && __mips_isa_rev >= 2))
-   switch (sel) {
-      case 0:
-         /* __asm__("mfc0 %0, $1, 0" :"=r" (x)); */
-         switch (rd) {
-            ASM_VOLATILE_CASE(0, 0);
-            ASM_VOLATILE_CASE(1, 0);
-            ASM_VOLATILE_CASE(2, 0);
-            ASM_VOLATILE_CASE(3, 0);
-            ASM_VOLATILE_CASE(4, 0);
-            ASM_VOLATILE_CASE(5, 0);
-            ASM_VOLATILE_CASE(6, 0);
-            ASM_VOLATILE_CASE(7, 0);
-            ASM_VOLATILE_CASE(8, 0);
-            ASM_VOLATILE_CASE(9, 0);
-            ASM_VOLATILE_CASE(10, 0);
-            ASM_VOLATILE_CASE(11, 0);
-            ASM_VOLATILE_CASE(12, 0);
-            ASM_VOLATILE_CASE(13, 0);
-            ASM_VOLATILE_CASE(14, 0);
-            ASM_VOLATILE_CASE(15, 0);
-            ASM_VOLATILE_CASE(16, 0);
-            ASM_VOLATILE_CASE(17, 0);
-            ASM_VOLATILE_CASE(18, 0);
-            ASM_VOLATILE_CASE(19, 0);
-            ASM_VOLATILE_CASE(20, 0);
-            ASM_VOLATILE_CASE(21, 0);
-            ASM_VOLATILE_CASE(22, 0);
-            ASM_VOLATILE_CASE(23, 0);
-            ASM_VOLATILE_CASE(24, 0);
-            ASM_VOLATILE_CASE(25, 0);
-            ASM_VOLATILE_CASE(26, 0);
-            ASM_VOLATILE_CASE(27, 0);
-            ASM_VOLATILE_CASE(28, 0);
-            ASM_VOLATILE_CASE(29, 0);
-            ASM_VOLATILE_CASE(30, 0);
-            ASM_VOLATILE_CASE(31, 0);
-         default:
-            break;
-         }
-         break;
-      case 1:
-         /* __asm__("mfc0 %0, $1, 0" :"=r" (x)); */
-         switch (rd) {
-            ASM_VOLATILE_CASE(0, 1);
-            ASM_VOLATILE_CASE(1, 1);
-            ASM_VOLATILE_CASE(2, 1);
-            ASM_VOLATILE_CASE(3, 1);
-            ASM_VOLATILE_CASE(4, 1);
-            ASM_VOLATILE_CASE(5, 1);
-            ASM_VOLATILE_CASE(6, 1);
-            ASM_VOLATILE_CASE(7, 1);
-            ASM_VOLATILE_CASE(8, 1);
-            ASM_VOLATILE_CASE(9, 1);
-            ASM_VOLATILE_CASE(10, 1);
-            ASM_VOLATILE_CASE(11, 1);
-            ASM_VOLATILE_CASE(12, 1);
-            ASM_VOLATILE_CASE(13, 1);
-            ASM_VOLATILE_CASE(14, 1);
-            ASM_VOLATILE_CASE(15, 1);
-            ASM_VOLATILE_CASE(16, 1);
-            ASM_VOLATILE_CASE(17, 1);
-            ASM_VOLATILE_CASE(18, 1);
-            ASM_VOLATILE_CASE(19, 1);
-            ASM_VOLATILE_CASE(20, 1);
-            ASM_VOLATILE_CASE(21, 1);
-            ASM_VOLATILE_CASE(22, 1);
-            ASM_VOLATILE_CASE(23, 1);
-            ASM_VOLATILE_CASE(24, 1);
-            ASM_VOLATILE_CASE(25, 1);
-            ASM_VOLATILE_CASE(26, 1);
-            ASM_VOLATILE_CASE(27, 1);
-            ASM_VOLATILE_CASE(28, 1);
-            ASM_VOLATILE_CASE(29, 1);
-            ASM_VOLATILE_CASE(30, 1);
-            ASM_VOLATILE_CASE(31, 1);
-         default:
-            break;
-         }
-         break;
-      case 2:
-         /* __asm__("mfc0 %0, $1, 0" :"=r" (x)); */
-         switch (rd) {
-            ASM_VOLATILE_CASE(0, 2);
-            ASM_VOLATILE_CASE(1, 2);
-            ASM_VOLATILE_CASE(2, 2);
-            ASM_VOLATILE_CASE(3, 1);
-            ASM_VOLATILE_CASE(4, 2);
-            ASM_VOLATILE_CASE(5, 2);
-            ASM_VOLATILE_CASE(6, 2);
-            ASM_VOLATILE_CASE(7, 2);
-            ASM_VOLATILE_CASE(8, 2);
-            ASM_VOLATILE_CASE(9, 2);
-            ASM_VOLATILE_CASE(10, 2);
-            ASM_VOLATILE_CASE(11, 2);
-            ASM_VOLATILE_CASE(12, 2);
-            ASM_VOLATILE_CASE(13, 2);
-            ASM_VOLATILE_CASE(14, 2);
-            ASM_VOLATILE_CASE(15, 2);
-            ASM_VOLATILE_CASE(16, 2);
-            ASM_VOLATILE_CASE(17, 2);
-            ASM_VOLATILE_CASE(18, 2);
-            ASM_VOLATILE_CASE(19, 2);
-            ASM_VOLATILE_CASE(20, 2);
-            ASM_VOLATILE_CASE(21, 2);
-            ASM_VOLATILE_CASE(22, 2);
-            ASM_VOLATILE_CASE(23, 2);
-            ASM_VOLATILE_CASE(24, 2);
-            ASM_VOLATILE_CASE(25, 2);
-            ASM_VOLATILE_CASE(26, 2);
-            ASM_VOLATILE_CASE(27, 2);
-            ASM_VOLATILE_CASE(28, 2);
-            ASM_VOLATILE_CASE(29, 2);
-            ASM_VOLATILE_CASE(30, 2);
-            ASM_VOLATILE_CASE(31, 2);
-         default:
-            break;
-         }
-         break;
-      case 3:
-         /* __asm__("mfc0 %0, $1, 0" :"=r" (x)); */
-         switch (rd) {
-            ASM_VOLATILE_CASE(0, 3);
-            ASM_VOLATILE_CASE(1, 3);
-            ASM_VOLATILE_CASE(2, 3);
-            ASM_VOLATILE_CASE(3, 3);
-            ASM_VOLATILE_CASE(4, 3);
-            ASM_VOLATILE_CASE(5, 3);
-            ASM_VOLATILE_CASE(6, 3);
-            ASM_VOLATILE_CASE(7, 3);
-            ASM_VOLATILE_CASE(8, 3);
-            ASM_VOLATILE_CASE(9, 3);
-            ASM_VOLATILE_CASE(10, 3);
-            ASM_VOLATILE_CASE(11, 3);
-            ASM_VOLATILE_CASE(12, 3);
-            ASM_VOLATILE_CASE(13, 3);
-            ASM_VOLATILE_CASE(14, 3);
-            ASM_VOLATILE_CASE(15, 3);
-            ASM_VOLATILE_CASE(16, 3);
-            ASM_VOLATILE_CASE(17, 3);
-            ASM_VOLATILE_CASE(18, 3);
-            ASM_VOLATILE_CASE(19, 3);
-            ASM_VOLATILE_CASE(20, 3);
-            ASM_VOLATILE_CASE(21, 3);
-            ASM_VOLATILE_CASE(22, 3);
-            ASM_VOLATILE_CASE(23, 3);
-            ASM_VOLATILE_CASE(24, 3);
-            ASM_VOLATILE_CASE(25, 3);
-            ASM_VOLATILE_CASE(26, 3);
-            ASM_VOLATILE_CASE(27, 3);
-            ASM_VOLATILE_CASE(28, 3);
-            ASM_VOLATILE_CASE(29, 3);
-            ASM_VOLATILE_CASE(30, 3);
-            ASM_VOLATILE_CASE(31, 3);
-         default:
-            break;
-         }
-         break;
-      case 4:
-         /* __asm__("mfc0 %0, $1, 0" :"=r" (x)); */
-         switch (rd) {
-            ASM_VOLATILE_CASE(0, 4);
-            ASM_VOLATILE_CASE(1, 4);
-            ASM_VOLATILE_CASE(2, 4);
-            ASM_VOLATILE_CASE(3, 4);
-            ASM_VOLATILE_CASE(4, 4);
-            ASM_VOLATILE_CASE(5, 4);
-            ASM_VOLATILE_CASE(6, 4);
-            ASM_VOLATILE_CASE(7, 4);
-            ASM_VOLATILE_CASE(8, 4);
-            ASM_VOLATILE_CASE(9, 4);
-            ASM_VOLATILE_CASE(10, 4);
-            ASM_VOLATILE_CASE(11, 4);
-            ASM_VOLATILE_CASE(12, 4);
-            ASM_VOLATILE_CASE(13, 4);
-            ASM_VOLATILE_CASE(14, 4);
-            ASM_VOLATILE_CASE(15, 4);
-            ASM_VOLATILE_CASE(16, 4);
-            ASM_VOLATILE_CASE(17, 4);
-            ASM_VOLATILE_CASE(18, 4);
-            ASM_VOLATILE_CASE(19, 4);
-            ASM_VOLATILE_CASE(20, 4);
-            ASM_VOLATILE_CASE(21, 4);
-            ASM_VOLATILE_CASE(22, 4);
-            ASM_VOLATILE_CASE(23, 4);
-            ASM_VOLATILE_CASE(24, 4);
-            ASM_VOLATILE_CASE(25, 4);
-            ASM_VOLATILE_CASE(26, 4);
-            ASM_VOLATILE_CASE(27, 4);
-            ASM_VOLATILE_CASE(28, 4);
-            ASM_VOLATILE_CASE(29, 4);
-            ASM_VOLATILE_CASE(30, 4);
-            ASM_VOLATILE_CASE(31, 4);
-         default:
-            break;
-         }
-         break;
-      case 5:
-         /* __asm__("mfc0 %0, $1, 0" :"=r" (x)); */
-         switch (rd) {
-            ASM_VOLATILE_CASE(0, 5);
-            ASM_VOLATILE_CASE(1, 5);
-            ASM_VOLATILE_CASE(2, 5);
-            ASM_VOLATILE_CASE(3, 5);
-            ASM_VOLATILE_CASE(4, 5);
-            ASM_VOLATILE_CASE(5, 5);
-            ASM_VOLATILE_CASE(6, 5);
-            ASM_VOLATILE_CASE(7, 5);
-            ASM_VOLATILE_CASE(8, 5);
-            ASM_VOLATILE_CASE(9, 5);
-            ASM_VOLATILE_CASE(10, 5);
-            ASM_VOLATILE_CASE(11, 5);
-            ASM_VOLATILE_CASE(12, 5);
-            ASM_VOLATILE_CASE(13, 5);
-            ASM_VOLATILE_CASE(14, 5);
-            ASM_VOLATILE_CASE(15, 5);
-            ASM_VOLATILE_CASE(16, 5);
-            ASM_VOLATILE_CASE(17, 5);
-            ASM_VOLATILE_CASE(18, 5);
-            ASM_VOLATILE_CASE(19, 5);
-            ASM_VOLATILE_CASE(20, 5);
-            ASM_VOLATILE_CASE(21, 5);
-            ASM_VOLATILE_CASE(22, 5);
-            ASM_VOLATILE_CASE(23, 5);
-            ASM_VOLATILE_CASE(24, 5);
-            ASM_VOLATILE_CASE(25, 5);
-            ASM_VOLATILE_CASE(26, 5);
-            ASM_VOLATILE_CASE(27, 5);
-            ASM_VOLATILE_CASE(28, 5);
-            ASM_VOLATILE_CASE(29, 5);
-            ASM_VOLATILE_CASE(30, 5);
-            ASM_VOLATILE_CASE(31, 5);
-         default:
-            break;
-         }
-         break;
-      case 6:
-         /* __asm__("mfc0 %0, $1, 0" :"=r" (x)); */
-         switch (rd) {
-            ASM_VOLATILE_CASE(0, 6);
-            ASM_VOLATILE_CASE(1, 6);
-            ASM_VOLATILE_CASE(2, 6);
-            ASM_VOLATILE_CASE(3, 6);
-            ASM_VOLATILE_CASE(4, 6);
-            ASM_VOLATILE_CASE(5, 6);
-            ASM_VOLATILE_CASE(6, 6);
-            ASM_VOLATILE_CASE(7, 6);
-            ASM_VOLATILE_CASE(8, 6);
-            ASM_VOLATILE_CASE(9, 6);
-            ASM_VOLATILE_CASE(10, 6);
-            ASM_VOLATILE_CASE(11, 6);
-            ASM_VOLATILE_CASE(12, 6);
-            ASM_VOLATILE_CASE(13, 6);
-            ASM_VOLATILE_CASE(14, 6);
-            ASM_VOLATILE_CASE(15, 6);
-            ASM_VOLATILE_CASE(16, 6);
-            ASM_VOLATILE_CASE(17, 6);
-            ASM_VOLATILE_CASE(18, 6);
-            ASM_VOLATILE_CASE(19, 6);
-            ASM_VOLATILE_CASE(20, 6);
-            ASM_VOLATILE_CASE(21, 6);
-            ASM_VOLATILE_CASE(22, 6);
-            ASM_VOLATILE_CASE(23, 6);
-            ASM_VOLATILE_CASE(24, 6);
-            ASM_VOLATILE_CASE(25, 6);
-            ASM_VOLATILE_CASE(26, 6);
-            ASM_VOLATILE_CASE(27, 6);
-            ASM_VOLATILE_CASE(28, 6);
-            ASM_VOLATILE_CASE(29, 6);
-            ASM_VOLATILE_CASE(30, 6);
-            ASM_VOLATILE_CASE(31, 6);
-         default:
-            break;
-         }
-         break;
-      case 7:
-         /* __asm__("mfc0 %0, $1, 0" :"=r" (x)); */
-         switch (rd) {
-            ASM_VOLATILE_CASE(0, 7);
-            ASM_VOLATILE_CASE(1, 7);
-            ASM_VOLATILE_CASE(2, 7);
-            ASM_VOLATILE_CASE(3, 7);
-            ASM_VOLATILE_CASE(4, 7);
-            ASM_VOLATILE_CASE(5, 7);
-            ASM_VOLATILE_CASE(6, 7);
-            ASM_VOLATILE_CASE(7, 7);
-            ASM_VOLATILE_CASE(8, 7);
-            ASM_VOLATILE_CASE(9, 7);
-            ASM_VOLATILE_CASE(10, 7);
-            ASM_VOLATILE_CASE(11, 7);
-            ASM_VOLATILE_CASE(12, 7);
-            ASM_VOLATILE_CASE(13, 7);
-            ASM_VOLATILE_CASE(14, 7);
-            ASM_VOLATILE_CASE(15, 7);
-            ASM_VOLATILE_CASE(16, 7);
-            ASM_VOLATILE_CASE(17, 7);
-            ASM_VOLATILE_CASE(18, 7);
-            ASM_VOLATILE_CASE(19, 7);
-            ASM_VOLATILE_CASE(20, 7);
-            ASM_VOLATILE_CASE(21, 7);
-            ASM_VOLATILE_CASE(22, 7);
-            ASM_VOLATILE_CASE(23, 7);
-            ASM_VOLATILE_CASE(24, 7);
-            ASM_VOLATILE_CASE(25, 7);
-            ASM_VOLATILE_CASE(26, 7);
-            ASM_VOLATILE_CASE(27, 7);
-            ASM_VOLATILE_CASE(28, 7);
-            ASM_VOLATILE_CASE(29, 7);
-            ASM_VOLATILE_CASE(30, 7);
-            ASM_VOLATILE_CASE(31, 7);
-         default:
-            break;
-         }
-      break;
-
-   default:
-      break;
-   }
-#endif
-   return x;
-}
-
-#undef ASM_VOLATILE_CASE
-
-#define ASM_VOLATILE_CASE(rd, sel) \
-         case rd: \
-            asm volatile ("dmfc0 %0, $" #rd ", "#sel"\n\t" :"=r" (x) ); \
-            break;
-
-ULong mips64_dirtyhelper_dmfc0 ( UInt rd, UInt sel )
-{
-   ULong x = 0;
-#if defined(VGP_mips64_linux)
-   switch (sel) {
-     case 0:
-        /* __asm__("dmfc0 %0, $1, 0" :"=r" (x)); */
-        switch (rd) {
-           ASM_VOLATILE_CASE (0, 0);
-           ASM_VOLATILE_CASE (1, 0);
-           ASM_VOLATILE_CASE (2, 0);
-           ASM_VOLATILE_CASE (3, 0);
-           ASM_VOLATILE_CASE (4, 0);
-           ASM_VOLATILE_CASE (5, 0);
-           ASM_VOLATILE_CASE (6, 0);
-           ASM_VOLATILE_CASE (7, 0);
-           ASM_VOLATILE_CASE (8, 0);
-           ASM_VOLATILE_CASE (9, 0);
-           ASM_VOLATILE_CASE (10, 0);
-           ASM_VOLATILE_CASE (11, 0);
-           ASM_VOLATILE_CASE (12, 0);
-           ASM_VOLATILE_CASE (13, 0);
-           ASM_VOLATILE_CASE (14, 0);
-           ASM_VOLATILE_CASE (15, 0);
-           ASM_VOLATILE_CASE (16, 0);
-           ASM_VOLATILE_CASE (17, 0);
-           ASM_VOLATILE_CASE (18, 0);
-           ASM_VOLATILE_CASE (19, 0);
-           ASM_VOLATILE_CASE (20, 0);
-           ASM_VOLATILE_CASE (21, 0);
-           ASM_VOLATILE_CASE (22, 0);
-           ASM_VOLATILE_CASE (23, 0);
-           ASM_VOLATILE_CASE (24, 0);
-           ASM_VOLATILE_CASE (25, 0);
-           ASM_VOLATILE_CASE (26, 0);
-           ASM_VOLATILE_CASE (27, 0);
-           ASM_VOLATILE_CASE (28, 0);
-           ASM_VOLATILE_CASE (29, 0);
-           ASM_VOLATILE_CASE (30, 0);
-           ASM_VOLATILE_CASE (31, 0);
-         default:
-           break;
-        }
-        break;
-     case 1:
-        /* __asm__("dmfc0 %0, $1, 0" :"=r" (x)); */
-        switch (rd) {
-           ASM_VOLATILE_CASE (0, 1);
-           ASM_VOLATILE_CASE (1, 1);
-           ASM_VOLATILE_CASE (2, 1);
-           ASM_VOLATILE_CASE (3, 1);
-           ASM_VOLATILE_CASE (4, 1);
-           ASM_VOLATILE_CASE (5, 1);
-           ASM_VOLATILE_CASE (6, 1);
-           ASM_VOLATILE_CASE (7, 1);
-           ASM_VOLATILE_CASE (8, 1);
-           ASM_VOLATILE_CASE (9, 1);
-           ASM_VOLATILE_CASE (10, 1);
-           ASM_VOLATILE_CASE (11, 1);
-           ASM_VOLATILE_CASE (12, 1);
-           ASM_VOLATILE_CASE (13, 1);
-           ASM_VOLATILE_CASE (14, 1);
-           ASM_VOLATILE_CASE (15, 1);
-           ASM_VOLATILE_CASE (16, 1);
-           ASM_VOLATILE_CASE (17, 1);
-           ASM_VOLATILE_CASE (18, 1);
-           ASM_VOLATILE_CASE (19, 1);
-           ASM_VOLATILE_CASE (20, 1);
-           ASM_VOLATILE_CASE (21, 1);
-           ASM_VOLATILE_CASE (22, 1);
-           ASM_VOLATILE_CASE (23, 1);
-           ASM_VOLATILE_CASE (24, 1);
-           ASM_VOLATILE_CASE (25, 1);
-           ASM_VOLATILE_CASE (26, 1);
-           ASM_VOLATILE_CASE (27, 1);
-           ASM_VOLATILE_CASE (28, 1);
-           ASM_VOLATILE_CASE (29, 1);
-           ASM_VOLATILE_CASE (30, 1);
-           ASM_VOLATILE_CASE (31, 1);
-        default:
-           break;
-        }
-        break;
-     case 2:
-        /* __asm__("dmfc0 %0, $1, 0" :"=r" (x)); */
-        switch (rd) {
-           ASM_VOLATILE_CASE (0, 2);
-           ASM_VOLATILE_CASE (1, 2);
-           ASM_VOLATILE_CASE (2, 2);
-           ASM_VOLATILE_CASE (3, 1);
-           ASM_VOLATILE_CASE (4, 2);
-           ASM_VOLATILE_CASE (5, 2);
-           ASM_VOLATILE_CASE (6, 2);
-           ASM_VOLATILE_CASE (7, 2);
-           ASM_VOLATILE_CASE (8, 2);
-           ASM_VOLATILE_CASE (9, 2);
-           ASM_VOLATILE_CASE (10, 2);
-           ASM_VOLATILE_CASE (11, 2);
-           ASM_VOLATILE_CASE (12, 2);
-           ASM_VOLATILE_CASE (13, 2);
-           ASM_VOLATILE_CASE (14, 2);
-           ASM_VOLATILE_CASE (15, 2);
-           ASM_VOLATILE_CASE (16, 2);
-           ASM_VOLATILE_CASE (17, 2);
-           ASM_VOLATILE_CASE (18, 2);
-           ASM_VOLATILE_CASE (19, 2);
-           ASM_VOLATILE_CASE (20, 2);
-           ASM_VOLATILE_CASE (21, 2);
-           ASM_VOLATILE_CASE (22, 2);
-           ASM_VOLATILE_CASE (23, 2);
-           ASM_VOLATILE_CASE (24, 2);
-           ASM_VOLATILE_CASE (25, 2);
-           ASM_VOLATILE_CASE (26, 2);
-           ASM_VOLATILE_CASE (27, 2);
-           ASM_VOLATILE_CASE (28, 2);
-           ASM_VOLATILE_CASE (29, 2);
-           ASM_VOLATILE_CASE (30, 2);
-           ASM_VOLATILE_CASE (31, 2);
-         default:
-           break;
-         }
-         break;
-     case 3:
-        /* __asm__("dmfc0 %0, $1, 0" :"=r" (x)); */
-        switch (rd) {
-           ASM_VOLATILE_CASE (0, 3);
-           ASM_VOLATILE_CASE (1, 3);
-           ASM_VOLATILE_CASE (2, 3);
-           ASM_VOLATILE_CASE (3, 3);
-           ASM_VOLATILE_CASE (4, 3);
-           ASM_VOLATILE_CASE (5, 3);
-           ASM_VOLATILE_CASE (6, 3);
-           ASM_VOLATILE_CASE (7, 3);
-           ASM_VOLATILE_CASE (8, 3);
-           ASM_VOLATILE_CASE (9, 3);
-           ASM_VOLATILE_CASE (10, 3);
-           ASM_VOLATILE_CASE (11, 3);
-           ASM_VOLATILE_CASE (12, 3);
-           ASM_VOLATILE_CASE (13, 3);
-           ASM_VOLATILE_CASE (14, 3);
-           ASM_VOLATILE_CASE (15, 3);
-           ASM_VOLATILE_CASE (16, 3);
-           ASM_VOLATILE_CASE (17, 3);
-           ASM_VOLATILE_CASE (18, 3);
-           ASM_VOLATILE_CASE (19, 3);
-           ASM_VOLATILE_CASE (20, 3);
-           ASM_VOLATILE_CASE (21, 3);
-           ASM_VOLATILE_CASE (22, 3);
-           ASM_VOLATILE_CASE (23, 3);
-           ASM_VOLATILE_CASE (24, 3);
-           ASM_VOLATILE_CASE (25, 3);
-           ASM_VOLATILE_CASE (26, 3);
-           ASM_VOLATILE_CASE (27, 3);
-           ASM_VOLATILE_CASE (28, 3);
-           ASM_VOLATILE_CASE (29, 3);
-           ASM_VOLATILE_CASE (30, 3);
-           ASM_VOLATILE_CASE (31, 3);
-        default:
-           break;
-        }
-        break;
-     case 4:
-        /* __asm__("dmfc0 %0, $1, 0" :"=r" (x)); */
-        switch (rd) {
-           ASM_VOLATILE_CASE (0, 4);
-           ASM_VOLATILE_CASE (1, 4);
-           ASM_VOLATILE_CASE (2, 4);
-           ASM_VOLATILE_CASE (3, 4);
-           ASM_VOLATILE_CASE (4, 4);
-           ASM_VOLATILE_CASE (5, 4);
-           ASM_VOLATILE_CASE (6, 4);
-           ASM_VOLATILE_CASE (7, 4);
-           ASM_VOLATILE_CASE (8, 4);
-           ASM_VOLATILE_CASE (9, 4);
-           ASM_VOLATILE_CASE (10, 4);
-           ASM_VOLATILE_CASE (11, 4);
-           ASM_VOLATILE_CASE (12, 4);
-           ASM_VOLATILE_CASE (13, 4);
-           ASM_VOLATILE_CASE (14, 4);
-           ASM_VOLATILE_CASE (15, 4);
-           ASM_VOLATILE_CASE (16, 4);
-           ASM_VOLATILE_CASE (17, 4);
-           ASM_VOLATILE_CASE (18, 4);
-           ASM_VOLATILE_CASE (19, 4);
-           ASM_VOLATILE_CASE (20, 4);
-           ASM_VOLATILE_CASE (21, 4);
-           ASM_VOLATILE_CASE (22, 4);
-           ASM_VOLATILE_CASE (23, 4);
-           ASM_VOLATILE_CASE (24, 4);
-           ASM_VOLATILE_CASE (25, 4);
-           ASM_VOLATILE_CASE (26, 4);
-           ASM_VOLATILE_CASE (27, 4);
-           ASM_VOLATILE_CASE (28, 4);
-           ASM_VOLATILE_CASE (29, 4);
-           ASM_VOLATILE_CASE (30, 4);
-           ASM_VOLATILE_CASE (31, 4);
-           default:
-              break;
-           }
-        break;
-     case 5:
-        /* __asm__("dmfc0 %0, $1, 0" :"=r" (x)); */
-        switch (rd) {
-           ASM_VOLATILE_CASE (0, 5);
-           ASM_VOLATILE_CASE (1, 5);
-           ASM_VOLATILE_CASE (2, 5);
-           ASM_VOLATILE_CASE (3, 5);
-           ASM_VOLATILE_CASE (4, 5);
-           ASM_VOLATILE_CASE (5, 5);
-           ASM_VOLATILE_CASE (6, 5);
-           ASM_VOLATILE_CASE (7, 5);
-           ASM_VOLATILE_CASE (8, 5);
-           ASM_VOLATILE_CASE (9, 5);
-           ASM_VOLATILE_CASE (10, 5);
-           ASM_VOLATILE_CASE (11, 5);
-           ASM_VOLATILE_CASE (12, 5);
-           ASM_VOLATILE_CASE (13, 5);
-           ASM_VOLATILE_CASE (14, 5);
-           ASM_VOLATILE_CASE (15, 5);
-           ASM_VOLATILE_CASE (16, 5);
-           ASM_VOLATILE_CASE (17, 5);
-           ASM_VOLATILE_CASE (18, 5);
-           ASM_VOLATILE_CASE (19, 5);
-           ASM_VOLATILE_CASE (20, 5);
-           ASM_VOLATILE_CASE (21, 5);
-           ASM_VOLATILE_CASE (22, 5);
-           ASM_VOLATILE_CASE (23, 5);
-           ASM_VOLATILE_CASE (24, 5);
-           ASM_VOLATILE_CASE (25, 5);
-           ASM_VOLATILE_CASE (26, 5);
-           ASM_VOLATILE_CASE (27, 5);
-           ASM_VOLATILE_CASE (28, 5);
-           ASM_VOLATILE_CASE (29, 5);
-           ASM_VOLATILE_CASE (30, 5);
-           ASM_VOLATILE_CASE (31, 5);
-           default:
-              break;
-        }
-        break;
-     case 6:
-        /* __asm__("dmfc0 %0, $1, 0" :"=r" (x)); */
-        switch (rd) {
-           ASM_VOLATILE_CASE (0, 6);
-           ASM_VOLATILE_CASE (1, 6);
-           ASM_VOLATILE_CASE (2, 6);
-           ASM_VOLATILE_CASE (3, 6);
-           ASM_VOLATILE_CASE (4, 6);
-           ASM_VOLATILE_CASE (5, 6);
-           ASM_VOLATILE_CASE (6, 6);
-           ASM_VOLATILE_CASE (7, 6);
-           ASM_VOLATILE_CASE (8, 6);
-           ASM_VOLATILE_CASE (9, 6);
-           ASM_VOLATILE_CASE (10, 6);
-           ASM_VOLATILE_CASE (11, 6);
-           ASM_VOLATILE_CASE (12, 6);
-           ASM_VOLATILE_CASE (13, 6);
-           ASM_VOLATILE_CASE (14, 6);
-           ASM_VOLATILE_CASE (15, 6);
-           ASM_VOLATILE_CASE (16, 6);
-           ASM_VOLATILE_CASE (17, 6);
-           ASM_VOLATILE_CASE (18, 6);
-           ASM_VOLATILE_CASE (19, 6);
-           ASM_VOLATILE_CASE (20, 6);
-           ASM_VOLATILE_CASE (21, 6);
-           ASM_VOLATILE_CASE (22, 6);
-           ASM_VOLATILE_CASE (23, 6);
-           ASM_VOLATILE_CASE (24, 6);
-           ASM_VOLATILE_CASE (25, 6);
-           ASM_VOLATILE_CASE (26, 6);
-           ASM_VOLATILE_CASE (27, 6);
-           ASM_VOLATILE_CASE (28, 6);
-           ASM_VOLATILE_CASE (29, 6);
-           ASM_VOLATILE_CASE (30, 6);
-           ASM_VOLATILE_CASE (31, 6);
-        default:
-           break;
-        }
-        break;
-     case 7:
-        /* __asm__("dmfc0 %0, $1, 0" :"=r" (x)); */
-        switch (rd) {
-           ASM_VOLATILE_CASE (0, 7);
-           ASM_VOLATILE_CASE (1, 7);
-           ASM_VOLATILE_CASE (2, 7);
-           ASM_VOLATILE_CASE (3, 7);
-           ASM_VOLATILE_CASE (4, 7);
-           ASM_VOLATILE_CASE (5, 7);
-           ASM_VOLATILE_CASE (6, 7);
-           ASM_VOLATILE_CASE (7, 7);
-           ASM_VOLATILE_CASE (8, 7);
-           ASM_VOLATILE_CASE (9, 7);
-           ASM_VOLATILE_CASE (10, 7);
-           ASM_VOLATILE_CASE (11, 7);
-           ASM_VOLATILE_CASE (12, 7);
-           ASM_VOLATILE_CASE (13, 7);
-           ASM_VOLATILE_CASE (14, 7);
-           ASM_VOLATILE_CASE (15, 7);
-           ASM_VOLATILE_CASE (16, 7);
-           ASM_VOLATILE_CASE (17, 7);
-           ASM_VOLATILE_CASE (18, 7);
-           ASM_VOLATILE_CASE (19, 7);
-           ASM_VOLATILE_CASE (20, 7);
-           ASM_VOLATILE_CASE (21, 7);
-           ASM_VOLATILE_CASE (22, 7);
-           ASM_VOLATILE_CASE (23, 7);
-           ASM_VOLATILE_CASE (24, 7);
-           ASM_VOLATILE_CASE (25, 7);
-           ASM_VOLATILE_CASE (26, 7);
-           ASM_VOLATILE_CASE (27, 7);
-           ASM_VOLATILE_CASE (28, 7);
-           ASM_VOLATILE_CASE (29, 7);
-           ASM_VOLATILE_CASE (30, 7);
-           ASM_VOLATILE_CASE (31, 7);
-         default:
-           break;
-         }
-       break;
-
-     default:
-       break;
-     }
-#endif
-   return x;
-}
-
 #if defined(__mips__) && ((defined(__mips_isa_rev) && __mips_isa_rev >= 2))
 UInt mips32_dirtyhelper_rdhwr ( UInt rt, UInt rd )
 {
index aaa07fa08d4675811465207e9abddb6a6d890f36..2d0a2df1627f98da4ff2d2d2f2f2f11dc25ac1fb 100644 (file)
@@ -13392,33 +13392,6 @@ static DisResult disInstr_MIPS_WRK ( Bool(*resteerOkFn) (/*opaque */void *,
          }
       }
       break;  /* COP1 */
-   case 0x10:  /* COP0 */
-      if (rs == 0) {  /* MFC0 */
-         DIP("mfc0 r%u, r%u, %u", rt, rd, sel);
-         IRTemp   val  = newTemp(Ity_I32);
-         IRExpr** args = mkIRExprVec_3 (IRExpr_BBPTR(), mkU32(rd), mkU32(sel));
-         IRDirty *d = unsafeIRDirty_1_N(val,
-                                        0,
-                                        "mips32_dirtyhelper_mfc0",
-                                        &mips32_dirtyhelper_mfc0,
-                                        args);
-         stmt(IRStmt_Dirty(d));
-         putIReg(rt, mkexpr(val));
-      } else if (rs == 1) {
-         /* Doubleword Move from Coprocessor 0 - DMFC0; MIPS64 */
-         DIP("dmfc0 r%u, r%u, %u", rt, rd, sel);
-         IRTemp   val  = newTemp(Ity_I64);
-         IRExpr** args = mkIRExprVec_3 (IRExpr_BBPTR(), mkU64(rd), mkU64(sel));
-         IRDirty *d = unsafeIRDirty_1_N(val,
-                                        0,
-                                        "mips64_dirtyhelper_dmfc0",
-                                        &mips64_dirtyhelper_dmfc0,
-                                        args);
-         stmt(IRStmt_Dirty(d));
-         putDReg(rt, mkexpr(val));
-      } else
-         goto decode_failure;
-      break;
 
    case 0x31:  /* LWC1 */
       /* Load Word to Floating Point - LWC1 (MIPS32) */