}
};
-#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 )
{