Commit f1b0aa5de7f48650aa6260d5dfb8ece1899e286c
1 parent
6b4d2ba1
Fix mfc0 and dmtc0 instructions on MIPS64, by Aurelien Jarno.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2819 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
72 additions
and
120 deletions
target-mips/op.c
| ... | ... | @@ -1260,7 +1260,7 @@ void op_mtc0_entrylo0 (void) |
| 1260 | 1260 | { |
| 1261 | 1261 | /* Large physaddr not implemented */ |
| 1262 | 1262 | /* 1k pages not implemented */ |
| 1263 | - env->CP0_EntryLo0 = (int32_t)T0 & 0x3FFFFFFF; | |
| 1263 | + env->CP0_EntryLo0 = T0 & 0x3FFFFFFF; | |
| 1264 | 1264 | RETURN(); |
| 1265 | 1265 | } |
| 1266 | 1266 | |
| ... | ... | @@ -1268,7 +1268,7 @@ void op_mtc0_entrylo1 (void) |
| 1268 | 1268 | { |
| 1269 | 1269 | /* Large physaddr not implemented */ |
| 1270 | 1270 | /* 1k pages not implemented */ |
| 1271 | - env->CP0_EntryLo1 = (int32_t)T0 & 0x3FFFFFFF; | |
| 1271 | + env->CP0_EntryLo1 = T0 & 0x3FFFFFFF; | |
| 1272 | 1272 | RETURN(); |
| 1273 | 1273 | } |
| 1274 | 1274 | |
| ... | ... | @@ -1338,9 +1338,9 @@ void op_mtc0_status (void) |
| 1338 | 1338 | uint32_t val, old; |
| 1339 | 1339 | uint32_t mask = env->Status_rw_bitmask; |
| 1340 | 1340 | |
| 1341 | - /* No reverse endianness, no MDMX/DSP, no 64bit ops, | |
| 1342 | - no 64bit addressing implemented. */ | |
| 1343 | - val = (int32_t)T0 & mask; | |
| 1341 | + /* No reverse endianness, no MDMX/DSP, no 64bit ops | |
| 1342 | + implemented. */ | |
| 1343 | + val = T0 & mask; | |
| 1344 | 1344 | old = env->CP0_Status; |
| 1345 | 1345 | if (!(val & (1 << CP0St_EXL)) && |
| 1346 | 1346 | !(val & (1 << CP0St_ERL)) && |
| ... | ... | @@ -1395,7 +1395,7 @@ void op_mtc0_cause (void) |
| 1395 | 1395 | |
| 1396 | 1396 | void op_mtc0_epc (void) |
| 1397 | 1397 | { |
| 1398 | - env->CP0_EPC = (int32_t)T0; | |
| 1398 | + env->CP0_EPC = T0; | |
| 1399 | 1399 | RETURN(); |
| 1400 | 1400 | } |
| 1401 | 1401 | |
| ... | ... | @@ -1424,7 +1424,7 @@ void op_mtc0_watchlo0 (void) |
| 1424 | 1424 | { |
| 1425 | 1425 | /* Watch exceptions for instructions, data loads, data stores |
| 1426 | 1426 | not implemented. */ |
| 1427 | - env->CP0_WatchLo = (int32_t)(T0 & ~0x7); | |
| 1427 | + env->CP0_WatchLo = (T0 & ~0x7); | |
| 1428 | 1428 | RETURN(); |
| 1429 | 1429 | } |
| 1430 | 1430 | |
| ... | ... | @@ -1453,7 +1453,7 @@ void op_mtc0_debug (void) |
| 1453 | 1453 | |
| 1454 | 1454 | void op_mtc0_depc (void) |
| 1455 | 1455 | { |
| 1456 | - env->CP0_DEPC = (int32_t)T0; | |
| 1456 | + env->CP0_DEPC = T0; | |
| 1457 | 1457 | RETURN(); |
| 1458 | 1458 | } |
| 1459 | 1459 | |
| ... | ... | @@ -1489,7 +1489,7 @@ void op_mtc0_datahi (void) |
| 1489 | 1489 | |
| 1490 | 1490 | void op_mtc0_errorepc (void) |
| 1491 | 1491 | { |
| 1492 | - env->CP0_ErrorEPC = (int32_t)T0; | |
| 1492 | + env->CP0_ErrorEPC = T0; | |
| 1493 | 1493 | RETURN(); |
| 1494 | 1494 | } |
| 1495 | 1495 | |
| ... | ... | @@ -1500,6 +1500,12 @@ void op_mtc0_desave (void) |
| 1500 | 1500 | } |
| 1501 | 1501 | |
| 1502 | 1502 | #ifdef TARGET_MIPS64 |
| 1503 | +void op_mtc0_xcontext (void) | |
| 1504 | +{ | |
| 1505 | + env->CP0_XContext = (env->CP0_XContext & 0x1ffffffffULL) | (T0 & ~0x1ffffffffULL); | |
| 1506 | + RETURN(); | |
| 1507 | +} | |
| 1508 | + | |
| 1503 | 1509 | void op_dmfc0_entrylo0 (void) |
| 1504 | 1510 | { |
| 1505 | 1511 | T0 = env->CP0_EntryLo0; |
| ... | ... | @@ -1565,60 +1571,6 @@ void op_dmfc0_errorepc (void) |
| 1565 | 1571 | T0 = env->CP0_ErrorEPC; |
| 1566 | 1572 | RETURN(); |
| 1567 | 1573 | } |
| 1568 | - | |
| 1569 | -void op_dmtc0_entrylo0 (void) | |
| 1570 | -{ | |
| 1571 | - /* Large physaddr not implemented */ | |
| 1572 | - /* 1k pages not implemented */ | |
| 1573 | - env->CP0_EntryLo0 = T0 & 0x3FFFFFFF; | |
| 1574 | - RETURN(); | |
| 1575 | -} | |
| 1576 | - | |
| 1577 | -void op_dmtc0_entrylo1 (void) | |
| 1578 | -{ | |
| 1579 | - /* Large physaddr not implemented */ | |
| 1580 | - /* 1k pages not implemented */ | |
| 1581 | - env->CP0_EntryLo1 = T0 & 0x3FFFFFFF; | |
| 1582 | - RETURN(); | |
| 1583 | -} | |
| 1584 | - | |
| 1585 | -void op_dmtc0_context (void) | |
| 1586 | -{ | |
| 1587 | - env->CP0_Context = (env->CP0_Context & 0x007FFFFF) | (T0 & ~0x007FFFFF); | |
| 1588 | - RETURN(); | |
| 1589 | -} | |
| 1590 | - | |
| 1591 | -void op_dmtc0_epc (void) | |
| 1592 | -{ | |
| 1593 | - env->CP0_EPC = T0; | |
| 1594 | - RETURN(); | |
| 1595 | -} | |
| 1596 | - | |
| 1597 | -void op_dmtc0_watchlo0 (void) | |
| 1598 | -{ | |
| 1599 | - /* Watch exceptions for instructions, data loads, data stores | |
| 1600 | - not implemented. */ | |
| 1601 | - env->CP0_WatchLo = T0 & ~0x7; | |
| 1602 | - RETURN(); | |
| 1603 | -} | |
| 1604 | - | |
| 1605 | -void op_dmtc0_xcontext (void) | |
| 1606 | -{ | |
| 1607 | - env->CP0_XContext = (env->CP0_XContext & 0xffffffff) | (T0 & ~0xffffffff); | |
| 1608 | - RETURN(); | |
| 1609 | -} | |
| 1610 | - | |
| 1611 | -void op_dmtc0_depc (void) | |
| 1612 | -{ | |
| 1613 | - env->CP0_DEPC = T0; | |
| 1614 | - RETURN(); | |
| 1615 | -} | |
| 1616 | - | |
| 1617 | -void op_dmtc0_errorepc (void) | |
| 1618 | -{ | |
| 1619 | - env->CP0_ErrorEPC = T0; | |
| 1620 | - RETURN(); | |
| 1621 | -} | |
| 1622 | 1574 | #endif /* TARGET_MIPS64 */ |
| 1623 | 1575 | |
| 1624 | 1576 | /* CP1 functions */ | ... | ... |
target-mips/translate.c
| ... | ... | @@ -2790,7 +2790,7 @@ static void gen_mtc0 (DisasContext *ctx, int reg, int sel) |
| 2790 | 2790 | switch (sel) { |
| 2791 | 2791 | case 0: |
| 2792 | 2792 | #ifdef TARGET_MIPS64 |
| 2793 | - /* Nothing writable in lower 32 bits */ | |
| 2793 | + gen_op_mtc0_xcontext(); | |
| 2794 | 2794 | rn = "XContext"; |
| 2795 | 2795 | break; |
| 2796 | 2796 | #endif |
| ... | ... | @@ -3583,15 +3583,15 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3583 | 3583 | rn = "Index"; |
| 3584 | 3584 | break; |
| 3585 | 3585 | case 1: |
| 3586 | -// gen_op_dmtc0_mvpcontrol(); /* MT ASE */ | |
| 3586 | +// gen_op_mtc0_mvpcontrol(); /* MT ASE */ | |
| 3587 | 3587 | rn = "MVPControl"; |
| 3588 | 3588 | // break; |
| 3589 | 3589 | case 2: |
| 3590 | -// gen_op_dmtc0_mvpconf0(); /* MT ASE */ | |
| 3590 | +// gen_op_mtc0_mvpconf0(); /* MT ASE */ | |
| 3591 | 3591 | rn = "MVPConf0"; |
| 3592 | 3592 | // break; |
| 3593 | 3593 | case 3: |
| 3594 | -// gen_op_dmtc0_mvpconf1(); /* MT ASE */ | |
| 3594 | +// gen_op_mtc0_mvpconf1(); /* MT ASE */ | |
| 3595 | 3595 | rn = "MVPConf1"; |
| 3596 | 3596 | // break; |
| 3597 | 3597 | default: |
| ... | ... | @@ -3605,31 +3605,31 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3605 | 3605 | rn = "Random"; |
| 3606 | 3606 | break; |
| 3607 | 3607 | case 1: |
| 3608 | -// gen_op_dmtc0_vpecontrol(); /* MT ASE */ | |
| 3608 | +// gen_op_mtc0_vpecontrol(); /* MT ASE */ | |
| 3609 | 3609 | rn = "VPEControl"; |
| 3610 | 3610 | // break; |
| 3611 | 3611 | case 2: |
| 3612 | -// gen_op_dmtc0_vpeconf0(); /* MT ASE */ | |
| 3612 | +// gen_op_mtc0_vpeconf0(); /* MT ASE */ | |
| 3613 | 3613 | rn = "VPEConf0"; |
| 3614 | 3614 | // break; |
| 3615 | 3615 | case 3: |
| 3616 | -// gen_op_dmtc0_vpeconf1(); /* MT ASE */ | |
| 3616 | +// gen_op_mtc0_vpeconf1(); /* MT ASE */ | |
| 3617 | 3617 | rn = "VPEConf1"; |
| 3618 | 3618 | // break; |
| 3619 | 3619 | case 4: |
| 3620 | -// gen_op_dmtc0_YQMask(); /* MT ASE */ | |
| 3620 | +// gen_op_mtc0_YQMask(); /* MT ASE */ | |
| 3621 | 3621 | rn = "YQMask"; |
| 3622 | 3622 | // break; |
| 3623 | 3623 | case 5: |
| 3624 | -// gen_op_dmtc0_vpeschedule(); /* MT ASE */ | |
| 3624 | +// gen_op_mtc0_vpeschedule(); /* MT ASE */ | |
| 3625 | 3625 | rn = "VPESchedule"; |
| 3626 | 3626 | // break; |
| 3627 | 3627 | case 6: |
| 3628 | -// gen_op_dmtc0_vpeschefback(); /* MT ASE */ | |
| 3628 | +// gen_op_mtc0_vpeschefback(); /* MT ASE */ | |
| 3629 | 3629 | rn = "VPEScheFBack"; |
| 3630 | 3630 | // break; |
| 3631 | 3631 | case 7: |
| 3632 | -// gen_op_dmtc0_vpeopt(); /* MT ASE */ | |
| 3632 | +// gen_op_mtc0_vpeopt(); /* MT ASE */ | |
| 3633 | 3633 | rn = "VPEOpt"; |
| 3634 | 3634 | // break; |
| 3635 | 3635 | default: |
| ... | ... | @@ -3639,35 +3639,35 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3639 | 3639 | case 2: |
| 3640 | 3640 | switch (sel) { |
| 3641 | 3641 | case 0: |
| 3642 | - gen_op_dmtc0_entrylo0(); | |
| 3642 | + gen_op_mtc0_entrylo0(); | |
| 3643 | 3643 | rn = "EntryLo0"; |
| 3644 | 3644 | break; |
| 3645 | 3645 | case 1: |
| 3646 | -// gen_op_dmtc0_tcstatus(); /* MT ASE */ | |
| 3646 | +// gen_op_mtc0_tcstatus(); /* MT ASE */ | |
| 3647 | 3647 | rn = "TCStatus"; |
| 3648 | 3648 | // break; |
| 3649 | 3649 | case 2: |
| 3650 | -// gen_op_dmtc0_tcbind(); /* MT ASE */ | |
| 3650 | +// gen_op_mtc0_tcbind(); /* MT ASE */ | |
| 3651 | 3651 | rn = "TCBind"; |
| 3652 | 3652 | // break; |
| 3653 | 3653 | case 3: |
| 3654 | -// gen_op_dmtc0_tcrestart(); /* MT ASE */ | |
| 3654 | +// gen_op_mtc0_tcrestart(); /* MT ASE */ | |
| 3655 | 3655 | rn = "TCRestart"; |
| 3656 | 3656 | // break; |
| 3657 | 3657 | case 4: |
| 3658 | -// gen_op_dmtc0_tchalt(); /* MT ASE */ | |
| 3658 | +// gen_op_mtc0_tchalt(); /* MT ASE */ | |
| 3659 | 3659 | rn = "TCHalt"; |
| 3660 | 3660 | // break; |
| 3661 | 3661 | case 5: |
| 3662 | -// gen_op_dmtc0_tccontext(); /* MT ASE */ | |
| 3662 | +// gen_op_mtc0_tccontext(); /* MT ASE */ | |
| 3663 | 3663 | rn = "TCContext"; |
| 3664 | 3664 | // break; |
| 3665 | 3665 | case 6: |
| 3666 | -// gen_op_dmtc0_tcschedule(); /* MT ASE */ | |
| 3666 | +// gen_op_mtc0_tcschedule(); /* MT ASE */ | |
| 3667 | 3667 | rn = "TCSchedule"; |
| 3668 | 3668 | // break; |
| 3669 | 3669 | case 7: |
| 3670 | -// gen_op_dmtc0_tcschefback(); /* MT ASE */ | |
| 3670 | +// gen_op_mtc0_tcschefback(); /* MT ASE */ | |
| 3671 | 3671 | rn = "TCScheFBack"; |
| 3672 | 3672 | // break; |
| 3673 | 3673 | default: |
| ... | ... | @@ -3677,7 +3677,7 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3677 | 3677 | case 3: |
| 3678 | 3678 | switch (sel) { |
| 3679 | 3679 | case 0: |
| 3680 | - gen_op_dmtc0_entrylo1(); | |
| 3680 | + gen_op_mtc0_entrylo1(); | |
| 3681 | 3681 | rn = "EntryLo1"; |
| 3682 | 3682 | break; |
| 3683 | 3683 | default: |
| ... | ... | @@ -3687,11 +3687,11 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3687 | 3687 | case 4: |
| 3688 | 3688 | switch (sel) { |
| 3689 | 3689 | case 0: |
| 3690 | - gen_op_dmtc0_context(); | |
| 3690 | + gen_op_mtc0_context(); | |
| 3691 | 3691 | rn = "Context"; |
| 3692 | 3692 | break; |
| 3693 | 3693 | case 1: |
| 3694 | -// gen_op_dmtc0_contextconfig(); /* SmartMIPS ASE */ | |
| 3694 | +// gen_op_mtc0_contextconfig(); /* SmartMIPS ASE */ | |
| 3695 | 3695 | rn = "ContextConfig"; |
| 3696 | 3696 | // break; |
| 3697 | 3697 | default: |
| ... | ... | @@ -3719,23 +3719,23 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3719 | 3719 | rn = "Wired"; |
| 3720 | 3720 | break; |
| 3721 | 3721 | case 1: |
| 3722 | -// gen_op_dmtc0_srsconf0(); /* shadow registers */ | |
| 3722 | +// gen_op_mtc0_srsconf0(); /* shadow registers */ | |
| 3723 | 3723 | rn = "SRSConf0"; |
| 3724 | 3724 | // break; |
| 3725 | 3725 | case 2: |
| 3726 | -// gen_op_dmtc0_srsconf1(); /* shadow registers */ | |
| 3726 | +// gen_op_mtc0_srsconf1(); /* shadow registers */ | |
| 3727 | 3727 | rn = "SRSConf1"; |
| 3728 | 3728 | // break; |
| 3729 | 3729 | case 3: |
| 3730 | -// gen_op_dmtc0_srsconf2(); /* shadow registers */ | |
| 3730 | +// gen_op_mtc0_srsconf2(); /* shadow registers */ | |
| 3731 | 3731 | rn = "SRSConf2"; |
| 3732 | 3732 | // break; |
| 3733 | 3733 | case 4: |
| 3734 | -// gen_op_dmtc0_srsconf3(); /* shadow registers */ | |
| 3734 | +// gen_op_mtc0_srsconf3(); /* shadow registers */ | |
| 3735 | 3735 | rn = "SRSConf3"; |
| 3736 | 3736 | // break; |
| 3737 | 3737 | case 5: |
| 3738 | -// gen_op_dmtc0_srsconf4(); /* shadow registers */ | |
| 3738 | +// gen_op_mtc0_srsconf4(); /* shadow registers */ | |
| 3739 | 3739 | rn = "SRSConf4"; |
| 3740 | 3740 | // break; |
| 3741 | 3741 | default: |
| ... | ... | @@ -3831,7 +3831,7 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3831 | 3831 | case 14: |
| 3832 | 3832 | switch (sel) { |
| 3833 | 3833 | case 0: |
| 3834 | - gen_op_dmtc0_epc(); | |
| 3834 | + gen_op_mtc0_epc(); | |
| 3835 | 3835 | rn = "EPC"; |
| 3836 | 3836 | break; |
| 3837 | 3837 | default: |
| ... | ... | @@ -3893,35 +3893,35 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3893 | 3893 | case 18: |
| 3894 | 3894 | switch (sel) { |
| 3895 | 3895 | case 0: |
| 3896 | - gen_op_dmtc0_watchlo0(); | |
| 3896 | + gen_op_mtc0_watchlo0(); | |
| 3897 | 3897 | rn = "WatchLo"; |
| 3898 | 3898 | break; |
| 3899 | 3899 | case 1: |
| 3900 | -// gen_op_dmtc0_watchlo1(); | |
| 3900 | +// gen_op_mtc0_watchlo1(); | |
| 3901 | 3901 | rn = "WatchLo1"; |
| 3902 | 3902 | // break; |
| 3903 | 3903 | case 2: |
| 3904 | -// gen_op_dmtc0_watchlo2(); | |
| 3904 | +// gen_op_mtc0_watchlo2(); | |
| 3905 | 3905 | rn = "WatchLo2"; |
| 3906 | 3906 | // break; |
| 3907 | 3907 | case 3: |
| 3908 | -// gen_op_dmtc0_watchlo3(); | |
| 3908 | +// gen_op_mtc0_watchlo3(); | |
| 3909 | 3909 | rn = "WatchLo3"; |
| 3910 | 3910 | // break; |
| 3911 | 3911 | case 4: |
| 3912 | -// gen_op_dmtc0_watchlo4(); | |
| 3912 | +// gen_op_mtc0_watchlo4(); | |
| 3913 | 3913 | rn = "WatchLo4"; |
| 3914 | 3914 | // break; |
| 3915 | 3915 | case 5: |
| 3916 | -// gen_op_dmtc0_watchlo5(); | |
| 3916 | +// gen_op_mtc0_watchlo5(); | |
| 3917 | 3917 | rn = "WatchLo5"; |
| 3918 | 3918 | // break; |
| 3919 | 3919 | case 6: |
| 3920 | -// gen_op_dmtc0_watchlo6(); | |
| 3920 | +// gen_op_mtc0_watchlo6(); | |
| 3921 | 3921 | rn = "WatchLo6"; |
| 3922 | 3922 | // break; |
| 3923 | 3923 | case 7: |
| 3924 | -// gen_op_dmtc0_watchlo7(); | |
| 3924 | +// gen_op_mtc0_watchlo7(); | |
| 3925 | 3925 | rn = "WatchLo7"; |
| 3926 | 3926 | // break; |
| 3927 | 3927 | default: |
| ... | ... | @@ -3935,31 +3935,31 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3935 | 3935 | rn = "WatchHi"; |
| 3936 | 3936 | break; |
| 3937 | 3937 | case 1: |
| 3938 | -// gen_op_dmtc0_watchhi1(); | |
| 3938 | +// gen_op_mtc0_watchhi1(); | |
| 3939 | 3939 | rn = "WatchHi1"; |
| 3940 | 3940 | // break; |
| 3941 | 3941 | case 2: |
| 3942 | -// gen_op_dmtc0_watchhi2(); | |
| 3942 | +// gen_op_mtc0_watchhi2(); | |
| 3943 | 3943 | rn = "WatchHi2"; |
| 3944 | 3944 | // break; |
| 3945 | 3945 | case 3: |
| 3946 | -// gen_op_dmtc0_watchhi3(); | |
| 3946 | +// gen_op_mtc0_watchhi3(); | |
| 3947 | 3947 | rn = "WatchHi3"; |
| 3948 | 3948 | // break; |
| 3949 | 3949 | case 4: |
| 3950 | -// gen_op_dmtc0_watchhi4(); | |
| 3950 | +// gen_op_mtc0_watchhi4(); | |
| 3951 | 3951 | rn = "WatchHi4"; |
| 3952 | 3952 | // break; |
| 3953 | 3953 | case 5: |
| 3954 | -// gen_op_dmtc0_watchhi5(); | |
| 3954 | +// gen_op_mtc0_watchhi5(); | |
| 3955 | 3955 | rn = "WatchHi5"; |
| 3956 | 3956 | // break; |
| 3957 | 3957 | case 6: |
| 3958 | -// gen_op_dmtc0_watchhi6(); | |
| 3958 | +// gen_op_mtc0_watchhi6(); | |
| 3959 | 3959 | rn = "WatchHi6"; |
| 3960 | 3960 | // break; |
| 3961 | 3961 | case 7: |
| 3962 | -// gen_op_dmtc0_watchhi7(); | |
| 3962 | +// gen_op_mtc0_watchhi7(); | |
| 3963 | 3963 | rn = "WatchHi7"; |
| 3964 | 3964 | // break; |
| 3965 | 3965 | default: |
| ... | ... | @@ -3970,7 +3970,7 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 3970 | 3970 | switch (sel) { |
| 3971 | 3971 | case 0: |
| 3972 | 3972 | #ifdef TARGET_MIPS64 |
| 3973 | - gen_op_dmtc0_xcontext(); | |
| 3973 | + gen_op_mtc0_xcontext(); | |
| 3974 | 3974 | rn = "XContext"; |
| 3975 | 3975 | break; |
| 3976 | 3976 | #endif |
| ... | ... | @@ -4000,19 +4000,19 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 4000 | 4000 | rn = "Debug"; |
| 4001 | 4001 | break; |
| 4002 | 4002 | case 1: |
| 4003 | -// gen_op_dmtc0_tracecontrol(); /* PDtrace support */ | |
| 4003 | +// gen_op_mtc0_tracecontrol(); /* PDtrace support */ | |
| 4004 | 4004 | rn = "TraceControl"; |
| 4005 | 4005 | // break; |
| 4006 | 4006 | case 2: |
| 4007 | -// gen_op_dmtc0_tracecontrol2(); /* PDtrace support */ | |
| 4007 | +// gen_op_mtc0_tracecontrol2(); /* PDtrace support */ | |
| 4008 | 4008 | rn = "TraceControl2"; |
| 4009 | 4009 | // break; |
| 4010 | 4010 | case 3: |
| 4011 | -// gen_op_dmtc0_usertracedata(); /* PDtrace support */ | |
| 4011 | +// gen_op_mtc0_usertracedata(); /* PDtrace support */ | |
| 4012 | 4012 | rn = "UserTraceData"; |
| 4013 | 4013 | // break; |
| 4014 | 4014 | case 4: |
| 4015 | -// gen_op_dmtc0_debug(); /* PDtrace support */ | |
| 4015 | +// gen_op_mtc0_debug(); /* PDtrace support */ | |
| 4016 | 4016 | rn = "TraceBPC"; |
| 4017 | 4017 | // break; |
| 4018 | 4018 | default: |
| ... | ... | @@ -4024,7 +4024,7 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 4024 | 4024 | case 24: |
| 4025 | 4025 | switch (sel) { |
| 4026 | 4026 | case 0: |
| 4027 | - gen_op_dmtc0_depc(); /* EJTAG support */ | |
| 4027 | + gen_op_mtc0_depc(); /* EJTAG support */ | |
| 4028 | 4028 | rn = "DEPC"; |
| 4029 | 4029 | break; |
| 4030 | 4030 | default: |
| ... | ... | @@ -4038,31 +4038,31 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 4038 | 4038 | rn = "Performance0"; |
| 4039 | 4039 | break; |
| 4040 | 4040 | case 1: |
| 4041 | -// gen_op_dmtc0_performance1(); | |
| 4041 | +// gen_op_mtc0_performance1(); | |
| 4042 | 4042 | rn = "Performance1"; |
| 4043 | 4043 | // break; |
| 4044 | 4044 | case 2: |
| 4045 | -// gen_op_dmtc0_performance2(); | |
| 4045 | +// gen_op_mtc0_performance2(); | |
| 4046 | 4046 | rn = "Performance2"; |
| 4047 | 4047 | // break; |
| 4048 | 4048 | case 3: |
| 4049 | -// gen_op_dmtc0_performance3(); | |
| 4049 | +// gen_op_mtc0_performance3(); | |
| 4050 | 4050 | rn = "Performance3"; |
| 4051 | 4051 | // break; |
| 4052 | 4052 | case 4: |
| 4053 | -// gen_op_dmtc0_performance4(); | |
| 4053 | +// gen_op_mtc0_performance4(); | |
| 4054 | 4054 | rn = "Performance4"; |
| 4055 | 4055 | // break; |
| 4056 | 4056 | case 5: |
| 4057 | -// gen_op_dmtc0_performance5(); | |
| 4057 | +// gen_op_mtc0_performance5(); | |
| 4058 | 4058 | rn = "Performance5"; |
| 4059 | 4059 | // break; |
| 4060 | 4060 | case 6: |
| 4061 | -// gen_op_dmtc0_performance6(); | |
| 4061 | +// gen_op_mtc0_performance6(); | |
| 4062 | 4062 | rn = "Performance6"; |
| 4063 | 4063 | // break; |
| 4064 | 4064 | case 7: |
| 4065 | -// gen_op_dmtc0_performance7(); | |
| 4065 | +// gen_op_mtc0_performance7(); | |
| 4066 | 4066 | rn = "Performance7"; |
| 4067 | 4067 | // break; |
| 4068 | 4068 | default: |
| ... | ... | @@ -4127,7 +4127,7 @@ static void gen_dmtc0 (DisasContext *ctx, int reg, int sel) |
| 4127 | 4127 | case 30: |
| 4128 | 4128 | switch (sel) { |
| 4129 | 4129 | case 0: |
| 4130 | - gen_op_dmtc0_errorepc(); | |
| 4130 | + gen_op_mtc0_errorepc(); | |
| 4131 | 4131 | rn = "ErrorEPC"; |
| 4132 | 4132 | break; |
| 4133 | 4133 | default: | ... | ... |