Commit c7697e1f51025283663c45880587d2da0af31a79
1 parent
f9fdea6b
Pretty dump for specific PowerPC instructions names.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3447 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
75 additions
and
35 deletions
target-ppc/translate.c
| @@ -257,6 +257,12 @@ static void gen_##name (DisasContext *ctx); \ | @@ -257,6 +257,12 @@ static void gen_##name (DisasContext *ctx); \ | ||
| 257 | GEN_OPCODE(name, opc1, opc2, opc3, inval, type); \ | 257 | GEN_OPCODE(name, opc1, opc2, opc3, inval, type); \ |
| 258 | static void gen_##name (DisasContext *ctx) | 258 | static void gen_##name (DisasContext *ctx) |
| 259 | 259 | ||
| 260 | +#define GEN_HANDLER2(name, onam, opc1, opc2, opc3, inval, type) \ | ||
| 261 | +static void gen_##name (DisasContext *ctx); \ | ||
| 262 | +GEN_OPCODE2(name, onam, opc1, opc2, opc3, inval, type); \ | ||
| 263 | +static void gen_##name (DisasContext *ctx) | ||
| 264 | + | ||
| 265 | + | ||
| 260 | typedef struct opcode_t { | 266 | typedef struct opcode_t { |
| 261 | unsigned char opc1, opc2, opc3; | 267 | unsigned char opc1, opc2, opc3; |
| 262 | #if HOST_LONG_BITS == 64 /* Explicitely align to 64 bits */ | 268 | #if HOST_LONG_BITS == 64 /* Explicitely align to 64 bits */ |
| @@ -523,6 +529,20 @@ OPCODES_SECTION opcode_t opc_##name = { \ | @@ -523,6 +529,20 @@ OPCODES_SECTION opcode_t opc_##name = { \ | ||
| 523 | }, \ | 529 | }, \ |
| 524 | .oname = stringify(name), \ | 530 | .oname = stringify(name), \ |
| 525 | } | 531 | } |
| 532 | +#define GEN_OPCODE2(name, onam, op1, op2, op3, invl, _typ) \ | ||
| 533 | +OPCODES_SECTION opcode_t opc_##name = { \ | ||
| 534 | + .opc1 = op1, \ | ||
| 535 | + .opc2 = op2, \ | ||
| 536 | + .opc3 = op3, \ | ||
| 537 | + .pad = { 0, }, \ | ||
| 538 | + .handler = { \ | ||
| 539 | + .inval = invl, \ | ||
| 540 | + .type = _typ, \ | ||
| 541 | + .handler = &gen_##name, \ | ||
| 542 | + .oname = onam, \ | ||
| 543 | + }, \ | ||
| 544 | + .oname = onam, \ | ||
| 545 | +} | ||
| 526 | #else | 546 | #else |
| 527 | #define GEN_OPCODE(name, op1, op2, op3, invl, _typ) \ | 547 | #define GEN_OPCODE(name, op1, op2, op3, invl, _typ) \ |
| 528 | OPCODES_SECTION opcode_t opc_##name = { \ | 548 | OPCODES_SECTION opcode_t opc_##name = { \ |
| @@ -537,6 +557,19 @@ OPCODES_SECTION opcode_t opc_##name = { \ | @@ -537,6 +557,19 @@ OPCODES_SECTION opcode_t opc_##name = { \ | ||
| 537 | }, \ | 557 | }, \ |
| 538 | .oname = stringify(name), \ | 558 | .oname = stringify(name), \ |
| 539 | } | 559 | } |
| 560 | +#define GEN_OPCODE2(name, onam, op1, op2, op3, invl, _typ) \ | ||
| 561 | +OPCODES_SECTION opcode_t opc_##name = { \ | ||
| 562 | + .opc1 = op1, \ | ||
| 563 | + .opc2 = op2, \ | ||
| 564 | + .opc3 = op3, \ | ||
| 565 | + .pad = { 0, }, \ | ||
| 566 | + .handler = { \ | ||
| 567 | + .inval = invl, \ | ||
| 568 | + .type = _typ, \ | ||
| 569 | + .handler = &gen_##name, \ | ||
| 570 | + }, \ | ||
| 571 | + .oname = onam, \ | ||
| 572 | +} | ||
| 540 | #endif | 573 | #endif |
| 541 | 574 | ||
| 542 | #define GEN_OPCODE_MARK(name) \ | 575 | #define GEN_OPCODE_MARK(name) \ |
| @@ -918,7 +951,7 @@ GEN_HANDLER(addic, 0x0C, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) | @@ -918,7 +951,7 @@ GEN_HANDLER(addic, 0x0C, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) | ||
| 918 | gen_op_store_T0_gpr(rD(ctx->opcode)); | 951 | gen_op_store_T0_gpr(rD(ctx->opcode)); |
| 919 | } | 952 | } |
| 920 | /* addic. */ | 953 | /* addic. */ |
| 921 | -GEN_HANDLER(addic_, 0x0D, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) | 954 | +GEN_HANDLER2(addic_, "addic.", 0x0D, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) |
| 922 | { | 955 | { |
| 923 | target_long simm = SIMM(ctx->opcode); | 956 | target_long simm = SIMM(ctx->opcode); |
| 924 | 957 | ||
| @@ -1087,7 +1120,7 @@ GEN_LOGICAL2(and, 0x00, PPC_INTEGER); | @@ -1087,7 +1120,7 @@ GEN_LOGICAL2(and, 0x00, PPC_INTEGER); | ||
| 1087 | /* andc & andc. */ | 1120 | /* andc & andc. */ |
| 1088 | GEN_LOGICAL2(andc, 0x01, PPC_INTEGER); | 1121 | GEN_LOGICAL2(andc, 0x01, PPC_INTEGER); |
| 1089 | /* andi. */ | 1122 | /* andi. */ |
| 1090 | -GEN_HANDLER(andi_, 0x1C, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) | 1123 | +GEN_HANDLER2(andi_, "andi.", 0x1C, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) |
| 1091 | { | 1124 | { |
| 1092 | gen_op_load_gpr_T0(rS(ctx->opcode)); | 1125 | gen_op_load_gpr_T0(rS(ctx->opcode)); |
| 1093 | gen_op_andi_T0(UIMM(ctx->opcode)); | 1126 | gen_op_andi_T0(UIMM(ctx->opcode)); |
| @@ -1095,7 +1128,7 @@ GEN_HANDLER(andi_, 0x1C, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) | @@ -1095,7 +1128,7 @@ GEN_HANDLER(andi_, 0x1C, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) | ||
| 1095 | gen_set_Rc0(ctx); | 1128 | gen_set_Rc0(ctx); |
| 1096 | } | 1129 | } |
| 1097 | /* andis. */ | 1130 | /* andis. */ |
| 1098 | -GEN_HANDLER(andis_, 0x1D, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) | 1131 | +GEN_HANDLER2(andis_, "andis.", 0x1D, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) |
| 1099 | { | 1132 | { |
| 1100 | gen_op_load_gpr_T0(rS(ctx->opcode)); | 1133 | gen_op_load_gpr_T0(rS(ctx->opcode)); |
| 1101 | gen_op_andi_T0(UIMM(ctx->opcode) << 16); | 1134 | gen_op_andi_T0(UIMM(ctx->opcode) << 16); |
| @@ -1385,28 +1418,32 @@ GEN_HANDLER(rlwnm, 0x17, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) | @@ -1385,28 +1418,32 @@ GEN_HANDLER(rlwnm, 0x17, 0xFF, 0xFF, 0x00000000, PPC_INTEGER) | ||
| 1385 | 1418 | ||
| 1386 | #if defined(TARGET_PPC64) | 1419 | #if defined(TARGET_PPC64) |
| 1387 | #define GEN_PPC64_R2(name, opc1, opc2) \ | 1420 | #define GEN_PPC64_R2(name, opc1, opc2) \ |
| 1388 | -GEN_HANDLER(name##0, opc1, opc2, 0xFF, 0x00000000, PPC_64B) \ | 1421 | +GEN_HANDLER2(name##0, stringify(name), opc1, opc2, 0xFF, 0x00000000, PPC_64B) \ |
| 1389 | { \ | 1422 | { \ |
| 1390 | gen_##name(ctx, 0); \ | 1423 | gen_##name(ctx, 0); \ |
| 1391 | } \ | 1424 | } \ |
| 1392 | -GEN_HANDLER(name##1, opc1, opc2 | 0x10, 0xFF, 0x00000000, PPC_64B) \ | 1425 | +GEN_HANDLER2(name##1, stringify(name), opc1, opc2 | 0x10, 0xFF, 0x00000000, \ |
| 1426 | + PPC_64B) \ | ||
| 1393 | { \ | 1427 | { \ |
| 1394 | gen_##name(ctx, 1); \ | 1428 | gen_##name(ctx, 1); \ |
| 1395 | } | 1429 | } |
| 1396 | #define GEN_PPC64_R4(name, opc1, opc2) \ | 1430 | #define GEN_PPC64_R4(name, opc1, opc2) \ |
| 1397 | -GEN_HANDLER(name##0, opc1, opc2, 0xFF, 0x00000000, PPC_64B) \ | 1431 | +GEN_HANDLER2(name##0, stringify(name), opc1, opc2, 0xFF, 0x00000000, PPC_64B) \ |
| 1398 | { \ | 1432 | { \ |
| 1399 | gen_##name(ctx, 0, 0); \ | 1433 | gen_##name(ctx, 0, 0); \ |
| 1400 | } \ | 1434 | } \ |
| 1401 | -GEN_HANDLER(name##1, opc1, opc2 | 0x01, 0xFF, 0x00000000, PPC_64B) \ | 1435 | +GEN_HANDLER2(name##1, stringify(name), opc1, opc2 | 0x01, 0xFF, 0x00000000, \ |
| 1436 | + PPC_64B) \ | ||
| 1402 | { \ | 1437 | { \ |
| 1403 | gen_##name(ctx, 0, 1); \ | 1438 | gen_##name(ctx, 0, 1); \ |
| 1404 | } \ | 1439 | } \ |
| 1405 | -GEN_HANDLER(name##2, opc1, opc2 | 0x10, 0xFF, 0x00000000, PPC_64B) \ | 1440 | +GEN_HANDLER2(name##2, stringify(name), opc1, opc2 | 0x10, 0xFF, 0x00000000, \ |
| 1441 | + PPC_64B) \ | ||
| 1406 | { \ | 1442 | { \ |
| 1407 | gen_##name(ctx, 1, 0); \ | 1443 | gen_##name(ctx, 1, 0); \ |
| 1408 | } \ | 1444 | } \ |
| 1409 | -GEN_HANDLER(name##3, opc1, opc2 | 0x11, 0xFF, 0x00000000, PPC_64B) \ | 1445 | +GEN_HANDLER2(name##3, stringify(name), opc1, opc2 | 0x11, 0xFF, 0x00000000, \ |
| 1446 | + PPC_64B) \ | ||
| 1410 | { \ | 1447 | { \ |
| 1411 | gen_##name(ctx, 1, 1); \ | 1448 | gen_##name(ctx, 1, 1); \ |
| 1412 | } | 1449 | } |
| @@ -1606,11 +1643,11 @@ static always_inline void gen_sradi (DisasContext *ctx, int n) | @@ -1606,11 +1643,11 @@ static always_inline void gen_sradi (DisasContext *ctx, int n) | ||
| 1606 | if (unlikely(Rc(ctx->opcode) != 0)) | 1643 | if (unlikely(Rc(ctx->opcode) != 0)) |
| 1607 | gen_set_Rc0(ctx); | 1644 | gen_set_Rc0(ctx); |
| 1608 | } | 1645 | } |
| 1609 | -GEN_HANDLER(sradi0, 0x1F, 0x1A, 0x19, 0x00000000, PPC_64B) | 1646 | +GEN_HANDLER2(sradi0, "sradi", 0x1F, 0x1A, 0x19, 0x00000000, PPC_64B) |
| 1610 | { | 1647 | { |
| 1611 | gen_sradi(ctx, 0); | 1648 | gen_sradi(ctx, 0); |
| 1612 | } | 1649 | } |
| 1613 | -GEN_HANDLER(sradi1, 0x1F, 0x1B, 0x19, 0x00000000, PPC_64B) | 1650 | +GEN_HANDLER2(sradi1, "sradi", 0x1F, 0x1B, 0x19, 0x00000000, PPC_64B) |
| 1614 | { | 1651 | { |
| 1615 | gen_sradi(ctx, 1); | 1652 | gen_sradi(ctx, 1); |
| 1616 | } | 1653 | } |
| @@ -2726,7 +2763,7 @@ GEN_HANDLER(lwarx, 0x1F, 0x14, 0x00, 0x00000001, PPC_RES) | @@ -2726,7 +2763,7 @@ GEN_HANDLER(lwarx, 0x1F, 0x14, 0x00, 0x00000001, PPC_RES) | ||
| 2726 | } | 2763 | } |
| 2727 | 2764 | ||
| 2728 | /* stwcx. */ | 2765 | /* stwcx. */ |
| 2729 | -GEN_HANDLER(stwcx_, 0x1F, 0x16, 0x04, 0x00000000, PPC_RES) | 2766 | +GEN_HANDLER2(stwcx_, "stwcx.", 0x1F, 0x16, 0x04, 0x00000000, PPC_RES) |
| 2730 | { | 2767 | { |
| 2731 | /* NIP cannot be restored if the memory exception comes from an helper */ | 2768 | /* NIP cannot be restored if the memory exception comes from an helper */ |
| 2732 | gen_update_nip(ctx, ctx->nip - 4); | 2769 | gen_update_nip(ctx, ctx->nip - 4); |
| @@ -2799,7 +2836,7 @@ GEN_HANDLER(ldarx, 0x1F, 0x14, 0x02, 0x00000001, PPC_64B) | @@ -2799,7 +2836,7 @@ GEN_HANDLER(ldarx, 0x1F, 0x14, 0x02, 0x00000001, PPC_64B) | ||
| 2799 | } | 2836 | } |
| 2800 | 2837 | ||
| 2801 | /* stdcx. */ | 2838 | /* stdcx. */ |
| 2802 | -GEN_HANDLER(stdcx_, 0x1F, 0x16, 0x06, 0x00000000, PPC_64B) | 2839 | +GEN_HANDLER2(stdcx_, "stdcx.", 0x1F, 0x16, 0x06, 0x00000000, PPC_64B) |
| 2803 | { | 2840 | { |
| 2804 | /* NIP cannot be restored if the memory exception comes from an helper */ | 2841 | /* NIP cannot be restored if the memory exception comes from an helper */ |
| 2805 | gen_update_nip(ctx, ctx->nip - 4); | 2842 | gen_update_nip(ctx, ctx->nip - 4); |
| @@ -3802,7 +3839,7 @@ GEN_HANDLER(dcbz, 0x1F, 0x16, 0x1F, 0x03E00001, PPC_CACHE_DCBZ) | @@ -3802,7 +3839,7 @@ GEN_HANDLER(dcbz, 0x1F, 0x16, 0x1F, 0x03E00001, PPC_CACHE_DCBZ) | ||
| 3802 | gen_op_check_reservation(); | 3839 | gen_op_check_reservation(); |
| 3803 | } | 3840 | } |
| 3804 | 3841 | ||
| 3805 | -GEN_HANDLER(dcbz_970, 0x1F, 0x16, 0x1F, 0x03C00001, PPC_CACHE_DCBZT) | 3842 | +GEN_HANDLER2(dcbz_970, "dcbz", 0x1F, 0x16, 0x1F, 0x03C00001, PPC_CACHE_DCBZT) |
| 3806 | { | 3843 | { |
| 3807 | gen_addr_reg_index(ctx); | 3844 | gen_addr_reg_index(ctx); |
| 3808 | if (ctx->opcode & 0x00200000) | 3845 | if (ctx->opcode & 0x00200000) |
| @@ -3943,7 +3980,7 @@ GEN_HANDLER(mtsrin, 0x1F, 0x12, 0x07, 0x001F0001, PPC_SEGMENT) | @@ -3943,7 +3980,7 @@ GEN_HANDLER(mtsrin, 0x1F, 0x12, 0x07, 0x001F0001, PPC_SEGMENT) | ||
| 3943 | #if defined(TARGET_PPC64) | 3980 | #if defined(TARGET_PPC64) |
| 3944 | /* Specific implementation for PowerPC 64 "bridge" emulation using SLB */ | 3981 | /* Specific implementation for PowerPC 64 "bridge" emulation using SLB */ |
| 3945 | /* mfsr */ | 3982 | /* mfsr */ |
| 3946 | -GEN_HANDLER(mfsr_64b, 0x1F, 0x13, 0x12, 0x0010F801, PPC_SEGMENT_64B) | 3983 | +GEN_HANDLER2(mfsr_64b, "mfsr", 0x1F, 0x13, 0x12, 0x0010F801, PPC_SEGMENT_64B) |
| 3947 | { | 3984 | { |
| 3948 | #if defined(CONFIG_USER_ONLY) | 3985 | #if defined(CONFIG_USER_ONLY) |
| 3949 | GEN_EXCP_PRIVREG(ctx); | 3986 | GEN_EXCP_PRIVREG(ctx); |
| @@ -3959,7 +3996,8 @@ GEN_HANDLER(mfsr_64b, 0x1F, 0x13, 0x12, 0x0010F801, PPC_SEGMENT_64B) | @@ -3959,7 +3996,8 @@ GEN_HANDLER(mfsr_64b, 0x1F, 0x13, 0x12, 0x0010F801, PPC_SEGMENT_64B) | ||
| 3959 | } | 3996 | } |
| 3960 | 3997 | ||
| 3961 | /* mfsrin */ | 3998 | /* mfsrin */ |
| 3962 | -GEN_HANDLER(mfsrin_64b, 0x1F, 0x13, 0x14, 0x001F0001, PPC_SEGMENT_64B) | 3999 | +GEN_HANDLER2(mfsrin_64b, "mfsrin", 0x1F, 0x13, 0x14, 0x001F0001, |
| 4000 | + PPC_SEGMENT_64B) | ||
| 3963 | { | 4001 | { |
| 3964 | #if defined(CONFIG_USER_ONLY) | 4002 | #if defined(CONFIG_USER_ONLY) |
| 3965 | GEN_EXCP_PRIVREG(ctx); | 4003 | GEN_EXCP_PRIVREG(ctx); |
| @@ -3976,7 +4014,7 @@ GEN_HANDLER(mfsrin_64b, 0x1F, 0x13, 0x14, 0x001F0001, PPC_SEGMENT_64B) | @@ -3976,7 +4014,7 @@ GEN_HANDLER(mfsrin_64b, 0x1F, 0x13, 0x14, 0x001F0001, PPC_SEGMENT_64B) | ||
| 3976 | } | 4014 | } |
| 3977 | 4015 | ||
| 3978 | /* mtsr */ | 4016 | /* mtsr */ |
| 3979 | -GEN_HANDLER(mtsr_64b, 0x1F, 0x12, 0x06, 0x0010F801, PPC_SEGMENT_64B) | 4017 | +GEN_HANDLER2(mtsr_64b, "mtsr", 0x1F, 0x12, 0x06, 0x0010F801, PPC_SEGMENT_64B) |
| 3980 | { | 4018 | { |
| 3981 | #if defined(CONFIG_USER_ONLY) | 4019 | #if defined(CONFIG_USER_ONLY) |
| 3982 | GEN_EXCP_PRIVREG(ctx); | 4020 | GEN_EXCP_PRIVREG(ctx); |
| @@ -3992,7 +4030,8 @@ GEN_HANDLER(mtsr_64b, 0x1F, 0x12, 0x06, 0x0010F801, PPC_SEGMENT_64B) | @@ -3992,7 +4030,8 @@ GEN_HANDLER(mtsr_64b, 0x1F, 0x12, 0x06, 0x0010F801, PPC_SEGMENT_64B) | ||
| 3992 | } | 4030 | } |
| 3993 | 4031 | ||
| 3994 | /* mtsrin */ | 4032 | /* mtsrin */ |
| 3995 | -GEN_HANDLER(mtsrin_64b, 0x1F, 0x12, 0x07, 0x001F0001, PPC_SEGMENT_64B) | 4033 | +GEN_HANDLER2(mtsrin_64b, "mtsrin", 0x1F, 0x12, 0x07, 0x001F0001, |
| 4034 | + PPC_SEGMENT_64B) | ||
| 3996 | { | 4035 | { |
| 3997 | #if defined(CONFIG_USER_ONLY) | 4036 | #if defined(CONFIG_USER_ONLY) |
| 3998 | GEN_EXCP_PRIVREG(ctx); | 4037 | GEN_EXCP_PRIVREG(ctx); |
| @@ -4215,6 +4254,7 @@ GEN_HANDLER(clcs, 0x1F, 0x10, 0x13, 0x0000F800, PPC_POWER_BR) | @@ -4215,6 +4254,7 @@ GEN_HANDLER(clcs, 0x1F, 0x10, 0x13, 0x0000F800, PPC_POWER_BR) | ||
| 4215 | { | 4254 | { |
| 4216 | gen_op_load_gpr_T0(rA(ctx->opcode)); | 4255 | gen_op_load_gpr_T0(rA(ctx->opcode)); |
| 4217 | gen_op_POWER_clcs(); | 4256 | gen_op_POWER_clcs(); |
| 4257 | + /* Rc=1 sets CR0 to an undefined state */ | ||
| 4218 | gen_op_store_T0_gpr(rD(ctx->opcode)); | 4258 | gen_op_store_T0_gpr(rD(ctx->opcode)); |
| 4219 | } | 4259 | } |
| 4220 | 4260 | ||
| @@ -4622,7 +4662,7 @@ GEN_HANDLER(mfrom, 0x1F, 0x09, 0x08, 0x03E0F801, PPC_602_SPEC) | @@ -4622,7 +4662,7 @@ GEN_HANDLER(mfrom, 0x1F, 0x09, 0x08, 0x03E0F801, PPC_602_SPEC) | ||
| 4622 | 4662 | ||
| 4623 | /* 602 - 603 - G2 TLB management */ | 4663 | /* 602 - 603 - G2 TLB management */ |
| 4624 | /* tlbld */ | 4664 | /* tlbld */ |
| 4625 | -GEN_HANDLER(tlbld_6xx, 0x1F, 0x12, 0x1E, 0x03FF0001, PPC_6xx_TLB) | 4665 | +GEN_HANDLER2(tlbld_6xx, "tlbld", 0x1F, 0x12, 0x1E, 0x03FF0001, PPC_6xx_TLB) |
| 4626 | { | 4666 | { |
| 4627 | #if defined(CONFIG_USER_ONLY) | 4667 | #if defined(CONFIG_USER_ONLY) |
| 4628 | GEN_EXCP_PRIVOPC(ctx); | 4668 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -4637,7 +4677,7 @@ GEN_HANDLER(tlbld_6xx, 0x1F, 0x12, 0x1E, 0x03FF0001, PPC_6xx_TLB) | @@ -4637,7 +4677,7 @@ GEN_HANDLER(tlbld_6xx, 0x1F, 0x12, 0x1E, 0x03FF0001, PPC_6xx_TLB) | ||
| 4637 | } | 4677 | } |
| 4638 | 4678 | ||
| 4639 | /* tlbli */ | 4679 | /* tlbli */ |
| 4640 | -GEN_HANDLER(tlbli_6xx, 0x1F, 0x12, 0x1F, 0x03FF0001, PPC_6xx_TLB) | 4680 | +GEN_HANDLER2(tlbli_6xx, "tlbli", 0x1F, 0x12, 0x1F, 0x03FF0001, PPC_6xx_TLB) |
| 4641 | { | 4681 | { |
| 4642 | #if defined(CONFIG_USER_ONLY) | 4682 | #if defined(CONFIG_USER_ONLY) |
| 4643 | GEN_EXCP_PRIVOPC(ctx); | 4683 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -4653,7 +4693,7 @@ GEN_HANDLER(tlbli_6xx, 0x1F, 0x12, 0x1F, 0x03FF0001, PPC_6xx_TLB) | @@ -4653,7 +4693,7 @@ GEN_HANDLER(tlbli_6xx, 0x1F, 0x12, 0x1F, 0x03FF0001, PPC_6xx_TLB) | ||
| 4653 | 4693 | ||
| 4654 | /* 74xx TLB management */ | 4694 | /* 74xx TLB management */ |
| 4655 | /* tlbld */ | 4695 | /* tlbld */ |
| 4656 | -GEN_HANDLER(tlbld_74xx, 0x1F, 0x12, 0x1E, 0x03FF0001, PPC_74xx_TLB) | 4696 | +GEN_HANDLER2(tlbld_74xx, "tlbld", 0x1F, 0x12, 0x1E, 0x03FF0001, PPC_74xx_TLB) |
| 4657 | { | 4697 | { |
| 4658 | #if defined(CONFIG_USER_ONLY) | 4698 | #if defined(CONFIG_USER_ONLY) |
| 4659 | GEN_EXCP_PRIVOPC(ctx); | 4699 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -4668,7 +4708,7 @@ GEN_HANDLER(tlbld_74xx, 0x1F, 0x12, 0x1E, 0x03FF0001, PPC_74xx_TLB) | @@ -4668,7 +4708,7 @@ GEN_HANDLER(tlbld_74xx, 0x1F, 0x12, 0x1E, 0x03FF0001, PPC_74xx_TLB) | ||
| 4668 | } | 4708 | } |
| 4669 | 4709 | ||
| 4670 | /* tlbli */ | 4710 | /* tlbli */ |
| 4671 | -GEN_HANDLER(tlbli_74xx, 0x1F, 0x12, 0x1F, 0x03FF0001, PPC_74xx_TLB) | 4711 | +GEN_HANDLER2(tlbli_74xx, "tlbli", 0x1F, 0x12, 0x1F, 0x03FF0001, PPC_74xx_TLB) |
| 4672 | { | 4712 | { |
| 4673 | #if defined(CONFIG_USER_ONLY) | 4713 | #if defined(CONFIG_USER_ONLY) |
| 4674 | GEN_EXCP_PRIVOPC(ctx); | 4714 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -5217,7 +5257,7 @@ GEN_HANDLER(dcread, 0x1F, 0x06, 0x0F, 0x00000001, PPC_4xx_COMMON) | @@ -5217,7 +5257,7 @@ GEN_HANDLER(dcread, 0x1F, 0x06, 0x0F, 0x00000001, PPC_4xx_COMMON) | ||
| 5217 | } | 5257 | } |
| 5218 | 5258 | ||
| 5219 | /* icbt */ | 5259 | /* icbt */ |
| 5220 | -GEN_HANDLER(icbt_40x, 0x1F, 0x06, 0x08, 0x03E00001, PPC_40x_ICBT) | 5260 | +GEN_HANDLER2(icbt_40x, "icbt", 0x1F, 0x06, 0x08, 0x03E00001, PPC_40x_ICBT) |
| 5221 | { | 5261 | { |
| 5222 | /* interpreted as no-op */ | 5262 | /* interpreted as no-op */ |
| 5223 | /* XXX: specification say this is treated as a load by the MMU | 5263 | /* XXX: specification say this is treated as a load by the MMU |
| @@ -5254,7 +5294,7 @@ GEN_HANDLER(icread, 0x1F, 0x06, 0x1F, 0x03E00001, PPC_4xx_COMMON) | @@ -5254,7 +5294,7 @@ GEN_HANDLER(icread, 0x1F, 0x06, 0x1F, 0x03E00001, PPC_4xx_COMMON) | ||
| 5254 | } | 5294 | } |
| 5255 | 5295 | ||
| 5256 | /* rfci (supervisor only) */ | 5296 | /* rfci (supervisor only) */ |
| 5257 | -GEN_HANDLER(rfci_40x, 0x13, 0x13, 0x01, 0x03FF8001, PPC_40x_EXCP) | 5297 | +GEN_HANDLER2(rfci_40x, "rfci", 0x13, 0x13, 0x01, 0x03FF8001, PPC_40x_EXCP) |
| 5258 | { | 5298 | { |
| 5259 | #if defined(CONFIG_USER_ONLY) | 5299 | #if defined(CONFIG_USER_ONLY) |
| 5260 | GEN_EXCP_PRIVOPC(ctx); | 5300 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -5319,7 +5359,7 @@ GEN_HANDLER(rfmci, 0x13, 0x06, 0x01, 0x03FF8001, PPC_RFMCI) | @@ -5319,7 +5359,7 @@ GEN_HANDLER(rfmci, 0x13, 0x06, 0x01, 0x03FF8001, PPC_RFMCI) | ||
| 5319 | 5359 | ||
| 5320 | /* TLB management - PowerPC 405 implementation */ | 5360 | /* TLB management - PowerPC 405 implementation */ |
| 5321 | /* tlbre */ | 5361 | /* tlbre */ |
| 5322 | -GEN_HANDLER(tlbre_40x, 0x1F, 0x12, 0x1D, 0x00000001, PPC_40x_TLB) | 5362 | +GEN_HANDLER2(tlbre_40x, "tlbre", 0x1F, 0x12, 0x1D, 0x00000001, PPC_40x_TLB) |
| 5323 | { | 5363 | { |
| 5324 | #if defined(CONFIG_USER_ONLY) | 5364 | #if defined(CONFIG_USER_ONLY) |
| 5325 | GEN_EXCP_PRIVOPC(ctx); | 5365 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -5347,7 +5387,7 @@ GEN_HANDLER(tlbre_40x, 0x1F, 0x12, 0x1D, 0x00000001, PPC_40x_TLB) | @@ -5347,7 +5387,7 @@ GEN_HANDLER(tlbre_40x, 0x1F, 0x12, 0x1D, 0x00000001, PPC_40x_TLB) | ||
| 5347 | } | 5387 | } |
| 5348 | 5388 | ||
| 5349 | /* tlbsx - tlbsx. */ | 5389 | /* tlbsx - tlbsx. */ |
| 5350 | -GEN_HANDLER(tlbsx_40x, 0x1F, 0x12, 0x1C, 0x00000000, PPC_40x_TLB) | 5390 | +GEN_HANDLER2(tlbsx_40x, "tlbsx", 0x1F, 0x12, 0x1C, 0x00000000, PPC_40x_TLB) |
| 5351 | { | 5391 | { |
| 5352 | #if defined(CONFIG_USER_ONLY) | 5392 | #if defined(CONFIG_USER_ONLY) |
| 5353 | GEN_EXCP_PRIVOPC(ctx); | 5393 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -5365,7 +5405,7 @@ GEN_HANDLER(tlbsx_40x, 0x1F, 0x12, 0x1C, 0x00000000, PPC_40x_TLB) | @@ -5365,7 +5405,7 @@ GEN_HANDLER(tlbsx_40x, 0x1F, 0x12, 0x1C, 0x00000000, PPC_40x_TLB) | ||
| 5365 | } | 5405 | } |
| 5366 | 5406 | ||
| 5367 | /* tlbwe */ | 5407 | /* tlbwe */ |
| 5368 | -GEN_HANDLER(tlbwe_40x, 0x1F, 0x12, 0x1E, 0x00000001, PPC_40x_TLB) | 5408 | +GEN_HANDLER2(tlbwe_40x, "tlbwe", 0x1F, 0x12, 0x1E, 0x00000001, PPC_40x_TLB) |
| 5369 | { | 5409 | { |
| 5370 | #if defined(CONFIG_USER_ONLY) | 5410 | #if defined(CONFIG_USER_ONLY) |
| 5371 | GEN_EXCP_PRIVOPC(ctx); | 5411 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -5394,7 +5434,7 @@ GEN_HANDLER(tlbwe_40x, 0x1F, 0x12, 0x1E, 0x00000001, PPC_40x_TLB) | @@ -5394,7 +5434,7 @@ GEN_HANDLER(tlbwe_40x, 0x1F, 0x12, 0x1E, 0x00000001, PPC_40x_TLB) | ||
| 5394 | 5434 | ||
| 5395 | /* TLB management - PowerPC 440 implementation */ | 5435 | /* TLB management - PowerPC 440 implementation */ |
| 5396 | /* tlbre */ | 5436 | /* tlbre */ |
| 5397 | -GEN_HANDLER(tlbre_440, 0x1F, 0x12, 0x1D, 0x00000001, PPC_BOOKE) | 5437 | +GEN_HANDLER2(tlbre_440, "tlbre", 0x1F, 0x12, 0x1D, 0x00000001, PPC_BOOKE) |
| 5398 | { | 5438 | { |
| 5399 | #if defined(CONFIG_USER_ONLY) | 5439 | #if defined(CONFIG_USER_ONLY) |
| 5400 | GEN_EXCP_PRIVOPC(ctx); | 5440 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -5419,7 +5459,7 @@ GEN_HANDLER(tlbre_440, 0x1F, 0x12, 0x1D, 0x00000001, PPC_BOOKE) | @@ -5419,7 +5459,7 @@ GEN_HANDLER(tlbre_440, 0x1F, 0x12, 0x1D, 0x00000001, PPC_BOOKE) | ||
| 5419 | } | 5459 | } |
| 5420 | 5460 | ||
| 5421 | /* tlbsx - tlbsx. */ | 5461 | /* tlbsx - tlbsx. */ |
| 5422 | -GEN_HANDLER(tlbsx_440, 0x1F, 0x12, 0x1C, 0x00000000, PPC_BOOKE) | 5462 | +GEN_HANDLER2(tlbsx_440, "tlbsx", 0x1F, 0x12, 0x1C, 0x00000000, PPC_BOOKE) |
| 5423 | { | 5463 | { |
| 5424 | #if defined(CONFIG_USER_ONLY) | 5464 | #if defined(CONFIG_USER_ONLY) |
| 5425 | GEN_EXCP_PRIVOPC(ctx); | 5465 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -5437,7 +5477,7 @@ GEN_HANDLER(tlbsx_440, 0x1F, 0x12, 0x1C, 0x00000000, PPC_BOOKE) | @@ -5437,7 +5477,7 @@ GEN_HANDLER(tlbsx_440, 0x1F, 0x12, 0x1C, 0x00000000, PPC_BOOKE) | ||
| 5437 | } | 5477 | } |
| 5438 | 5478 | ||
| 5439 | /* tlbwe */ | 5479 | /* tlbwe */ |
| 5440 | -GEN_HANDLER(tlbwe_440, 0x1F, 0x12, 0x1E, 0x00000001, PPC_BOOKE) | 5480 | +GEN_HANDLER2(tlbwe_440, "tlbwe", 0x1F, 0x12, 0x1E, 0x00000001, PPC_BOOKE) |
| 5441 | { | 5481 | { |
| 5442 | #if defined(CONFIG_USER_ONLY) | 5482 | #if defined(CONFIG_USER_ONLY) |
| 5443 | GEN_EXCP_PRIVOPC(ctx); | 5483 | GEN_EXCP_PRIVOPC(ctx); |
| @@ -5527,7 +5567,7 @@ GEN_HANDLER(msync, 0x1F, 0x16, 0x12, 0x03FFF801, PPC_BOOKE) | @@ -5527,7 +5567,7 @@ GEN_HANDLER(msync, 0x1F, 0x16, 0x12, 0x03FFF801, PPC_BOOKE) | ||
| 5527 | } | 5567 | } |
| 5528 | 5568 | ||
| 5529 | /* icbt */ | 5569 | /* icbt */ |
| 5530 | -GEN_HANDLER(icbt_440, 0x1F, 0x16, 0x00, 0x03E00001, PPC_BOOKE) | 5570 | +GEN_HANDLER2(icbt_440, "icbt", 0x1F, 0x16, 0x00, 0x03E00001, PPC_BOOKE) |
| 5531 | { | 5571 | { |
| 5532 | /* interpreted as no-op */ | 5572 | /* interpreted as no-op */ |
| 5533 | /* XXX: specification say this is treated as a load by the MMU | 5573 | /* XXX: specification say this is treated as a load by the MMU |
| @@ -6079,19 +6119,19 @@ static always_inline void gen_evsel (DisasContext *ctx) | @@ -6079,19 +6119,19 @@ static always_inline void gen_evsel (DisasContext *ctx) | ||
| 6079 | gen_op_store_T0_gpr64(rD(ctx->opcode)); | 6119 | gen_op_store_T0_gpr64(rD(ctx->opcode)); |
| 6080 | } | 6120 | } |
| 6081 | 6121 | ||
| 6082 | -GEN_HANDLER(evsel0, 0x04, 0x1c, 0x09, 0x00000000, PPC_SPE) | 6122 | +GEN_HANDLER2(evsel0, "evsel", 0x04, 0x1c, 0x09, 0x00000000, PPC_SPE) |
| 6083 | { | 6123 | { |
| 6084 | gen_evsel(ctx); | 6124 | gen_evsel(ctx); |
| 6085 | } | 6125 | } |
| 6086 | -GEN_HANDLER(evsel1, 0x04, 0x1d, 0x09, 0x00000000, PPC_SPE) | 6126 | +GEN_HANDLER2(evsel1, "evsel", 0x04, 0x1d, 0x09, 0x00000000, PPC_SPE) |
| 6087 | { | 6127 | { |
| 6088 | gen_evsel(ctx); | 6128 | gen_evsel(ctx); |
| 6089 | } | 6129 | } |
| 6090 | -GEN_HANDLER(evsel2, 0x04, 0x1e, 0x09, 0x00000000, PPC_SPE) | 6130 | +GEN_HANDLER2(evsel2, "evsel", 0x04, 0x1e, 0x09, 0x00000000, PPC_SPE) |
| 6091 | { | 6131 | { |
| 6092 | gen_evsel(ctx); | 6132 | gen_evsel(ctx); |
| 6093 | } | 6133 | } |
| 6094 | -GEN_HANDLER(evsel3, 0x04, 0x1f, 0x09, 0x00000000, PPC_SPE) | 6134 | +GEN_HANDLER2(evsel3, "evsel", 0x04, 0x1f, 0x09, 0x00000000, PPC_SPE) |
| 6095 | { | 6135 | { |
| 6096 | gen_evsel(ctx); | 6136 | gen_evsel(ctx); |
| 6097 | } | 6137 | } |