Commit fa4da1074c67a81e09d2bb99b406e1676769be89

Authored by aurel32
1 parent 6f06939b

SH4: Convert memory loads/stores to TCG

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5117 c046a42c-6fe2-441c-8c8c-71466251a162
target-sh4/op_mem.c
@@ -17,46 +17,6 @@ @@ -17,46 +17,6 @@
17 * License along with this library; if not, write to the Free Software 17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */ 19 */
20 -void glue(op_ldb_T0_T0, MEMSUFFIX) (void) {  
21 - T0 = glue(ldsb, MEMSUFFIX) (T0);  
22 - RETURN();  
23 -}  
24 -  
25 -void glue(op_ldub_T0_T0, MEMSUFFIX) (void) {  
26 - T0 = glue(ldub, MEMSUFFIX) (T0);  
27 - RETURN();  
28 -}  
29 -  
30 -void glue(op_stb_T0_T1, MEMSUFFIX) (void) {  
31 - glue(stb, MEMSUFFIX) (T1, T0);  
32 - RETURN();  
33 -}  
34 -  
35 -void glue(op_ldw_T0_T0, MEMSUFFIX) (void) {  
36 - T0 = glue(ldsw, MEMSUFFIX) (T0);  
37 - RETURN();  
38 -}  
39 -  
40 -void glue(op_lduw_T0_T0, MEMSUFFIX) (void) {  
41 - T0 = glue(lduw, MEMSUFFIX) (T0);  
42 - RETURN();  
43 -}  
44 -  
45 -void glue(op_stw_T0_T1, MEMSUFFIX) (void) {  
46 - glue(stw, MEMSUFFIX) (T1, T0);  
47 - RETURN();  
48 -}  
49 -  
50 -void glue(op_ldl_T0_T0, MEMSUFFIX) (void) {  
51 - T0 = glue(ldl, MEMSUFFIX) (T0);  
52 - RETURN();  
53 -}  
54 -  
55 -void glue(op_stl_T0_T1, MEMSUFFIX) (void) {  
56 - glue(stl, MEMSUFFIX) (T1, T0);  
57 - RETURN();  
58 -}  
59 -  
60 void glue(op_ldfl_T0_FT0, MEMSUFFIX) (void) { 20 void glue(op_ldfl_T0_FT0, MEMSUFFIX) (void) {
61 FT0 = glue(ldfl, MEMSUFFIX) (T0); 21 FT0 = glue(ldfl, MEMSUFFIX) (T0);
62 RETURN(); 22 RETURN();
target-sh4/translate.c
@@ -163,14 +163,6 @@ static void sh4_translate_init(void) @@ -163,14 +163,6 @@ static void sh4_translate_init(void)
163 163
164 #endif 164 #endif
165 165
166 -GEN_OP_LD(ub, T0)  
167 -GEN_OP_LD(b, T0)  
168 -GEN_OP_ST(b, T0)  
169 -GEN_OP_LD(uw, T0)  
170 -GEN_OP_LD(w, T0)  
171 -GEN_OP_ST(w, T0)  
172 -GEN_OP_LD(l, T0)  
173 -GEN_OP_ST(l, T0)  
174 GEN_OP_LD(fl, FT0) 166 GEN_OP_LD(fl, FT0)
175 GEN_OP_ST(fl, FT0) 167 GEN_OP_ST(fl, FT0)
176 GEN_OP_LD(fq, DT0) 168 GEN_OP_LD(fq, DT0)
@@ -441,12 +433,12 @@ void _decode_opc(DisasContext * ctx) @@ -441,12 +433,12 @@ void _decode_opc(DisasContext * ctx)
441 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 433 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
442 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]); 434 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);
443 tcg_gen_addi_i32(cpu_T[1], cpu_T[1], B3_0 * 4); 435 tcg_gen_addi_i32(cpu_T[1], cpu_T[1], B3_0 * 4);
444 - gen_op_stl_T0_T1(ctx); 436 + tcg_gen_qemu_st32(cpu_T[0], cpu_T[1], ctx->memidx);
445 return; 437 return;
446 case 0x5000: /* mov.l @(disp,Rm),Rn */ 438 case 0x5000: /* mov.l @(disp,Rm),Rn */
447 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 439 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
448 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B3_0 * 4); 440 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B3_0 * 4);
449 - gen_op_ldl_T0_T0(ctx); 441 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
450 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 442 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
451 return; 443 return;
452 case 0xe000: /* mov #imm,Rn */ 444 case 0xe000: /* mov #imm,Rn */
@@ -454,12 +446,12 @@ void _decode_opc(DisasContext * ctx) @@ -454,12 +446,12 @@ void _decode_opc(DisasContext * ctx)
454 return; 446 return;
455 case 0x9000: /* mov.w @(disp,PC),Rn */ 447 case 0x9000: /* mov.w @(disp,PC),Rn */
456 tcg_gen_movi_i32(cpu_T[0], ctx->pc + 4 + B7_0 * 2); 448 tcg_gen_movi_i32(cpu_T[0], ctx->pc + 4 + B7_0 * 2);
457 - gen_op_ldw_T0_T0(ctx); 449 + tcg_gen_qemu_ld16s(cpu_T[0], cpu_T[0], ctx->memidx);
458 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 450 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
459 return; 451 return;
460 case 0xd000: /* mov.l @(disp,PC),Rn */ 452 case 0xd000: /* mov.l @(disp,PC),Rn */
461 tcg_gen_movi_i32(cpu_T[0], (ctx->pc + 4 + B7_0 * 4) & ~3); 453 tcg_gen_movi_i32(cpu_T[0], (ctx->pc + 4 + B7_0 * 4) & ~3);
462 - gen_op_ldl_T0_T0(ctx); 454 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
463 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 455 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
464 return; 456 return;
465 case 0x7000: /* add #imm,Rn */ 457 case 0x7000: /* add #imm,Rn */
@@ -488,69 +480,54 @@ void _decode_opc(DisasContext * ctx) @@ -488,69 +480,54 @@ void _decode_opc(DisasContext * ctx)
488 case 0x2000: /* mov.b Rm,@Rn */ 480 case 0x2000: /* mov.b Rm,@Rn */
489 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 481 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
490 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]); 482 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);
491 - gen_op_stb_T0_T1(ctx); 483 + tcg_gen_qemu_st8(cpu_T[0], cpu_T[1], ctx->memidx);
492 return; 484 return;
493 case 0x2001: /* mov.w Rm,@Rn */ 485 case 0x2001: /* mov.w Rm,@Rn */
494 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 486 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
495 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]); 487 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);
496 - gen_op_stw_T0_T1(ctx); 488 + tcg_gen_qemu_st16(cpu_T[0], cpu_T[1], ctx->memidx);
497 return; 489 return;
498 case 0x2002: /* mov.l Rm,@Rn */ 490 case 0x2002: /* mov.l Rm,@Rn */
499 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 491 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
500 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]); 492 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);
501 - gen_op_stl_T0_T1(ctx); 493 + tcg_gen_qemu_st32(cpu_T[0], cpu_T[1], ctx->memidx);
502 return; 494 return;
503 case 0x6000: /* mov.b @Rm,Rn */ 495 case 0x6000: /* mov.b @Rm,Rn */
504 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 496 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
505 - gen_op_ldb_T0_T0(ctx); 497 + tcg_gen_qemu_ld8s(cpu_T[0], cpu_T[0], ctx->memidx);
506 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 498 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
507 return; 499 return;
508 case 0x6001: /* mov.w @Rm,Rn */ 500 case 0x6001: /* mov.w @Rm,Rn */
509 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 501 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
510 - gen_op_ldw_T0_T0(ctx); 502 + tcg_gen_qemu_ld16s(cpu_T[0], cpu_T[0], ctx->memidx);
511 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 503 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
512 return; 504 return;
513 case 0x6002: /* mov.l @Rm,Rn */ 505 case 0x6002: /* mov.l @Rm,Rn */
514 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 506 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
515 - gen_op_ldl_T0_T0(ctx); 507 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
516 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 508 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
517 return; 509 return;
518 case 0x2004: /* mov.b Rm,@-Rn */ 510 case 0x2004: /* mov.b Rm,@-Rn */
519 - tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);  
520 - tcg_gen_subi_i32(cpu_gregs[REG(B11_8)],  
521 - cpu_gregs[REG(B11_8)], 1); /* modify register status */  
522 - tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);  
523 - tcg_gen_addi_i32(cpu_gregs[REG(B11_8)],  
524 - cpu_gregs[REG(B11_8)], 1); /* recover register status */  
525 - gen_op_stb_T0_T1(ctx); /* might cause re-execution */ 511 + tcg_gen_subi_i32(cpu_T[1], cpu_gregs[REG(B11_8)], 1);
  512 + tcg_gen_qemu_st8(cpu_gregs[REG(B7_4)], cpu_T[1], ctx->memidx); /* might cause re-execution */
526 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)], 513 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)],
527 - cpu_gregs[REG(B11_8)], 1); /* modify register status */ 514 + cpu_gregs[REG(B11_8)], 1); /* modify register status */
528 return; 515 return;
529 case 0x2005: /* mov.w Rm,@-Rn */ 516 case 0x2005: /* mov.w Rm,@-Rn */
530 - tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);  
531 - tcg_gen_subi_i32(cpu_gregs[REG(B11_8)],  
532 - cpu_gregs[REG(B11_8)], 2);  
533 - tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);  
534 - tcg_gen_addi_i32(cpu_gregs[REG(B11_8)],  
535 - cpu_gregs[REG(B11_8)], 2);  
536 - gen_op_stw_T0_T1(ctx); 517 + tcg_gen_subi_i32(cpu_T[1], cpu_gregs[REG(B11_8)], 2);
  518 + tcg_gen_qemu_st16(cpu_gregs[REG(B7_4)], cpu_T[1], ctx->memidx);
537 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)], 519 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)],
538 cpu_gregs[REG(B11_8)], 2); 520 cpu_gregs[REG(B11_8)], 2);
539 return; 521 return;
540 case 0x2006: /* mov.l Rm,@-Rn */ 522 case 0x2006: /* mov.l Rm,@-Rn */
541 - tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);  
542 - tcg_gen_subi_i32(cpu_gregs[REG(B11_8)],  
543 - cpu_gregs[REG(B11_8)], 4);  
544 - tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);  
545 - tcg_gen_addi_i32(cpu_gregs[REG(B11_8)],  
546 - cpu_gregs[REG(B11_8)], 4);  
547 - gen_op_stl_T0_T1(ctx); 523 + tcg_gen_subi_i32(cpu_T[1], cpu_gregs[REG(B11_8)], 4);
  524 + tcg_gen_qemu_st32(cpu_gregs[REG(B7_4)], cpu_T[1], ctx->memidx);
548 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)], 525 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)],
549 cpu_gregs[REG(B11_8)], 4); 526 cpu_gregs[REG(B11_8)], 4);
550 return; 527 return;
551 case 0x6004: /* mov.b @Rm+,Rn */ 528 case 0x6004: /* mov.b @Rm+,Rn */
552 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 529 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
553 - gen_op_ldb_T0_T0(ctx); 530 + tcg_gen_qemu_ld8s(cpu_T[0], cpu_T[0], ctx->memidx);
554 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 531 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
555 if ( B11_8 != B7_4 ) 532 if ( B11_8 != B7_4 )
556 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)], 533 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)],
@@ -558,7 +535,7 @@ void _decode_opc(DisasContext * ctx) @@ -558,7 +535,7 @@ void _decode_opc(DisasContext * ctx)
558 return; 535 return;
559 case 0x6005: /* mov.w @Rm+,Rn */ 536 case 0x6005: /* mov.w @Rm+,Rn */
560 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 537 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
561 - gen_op_ldw_T0_T0(ctx); 538 + tcg_gen_qemu_ld16s(cpu_T[0], cpu_T[0], ctx->memidx);
562 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 539 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
563 if ( B11_8 != B7_4 ) 540 if ( B11_8 != B7_4 )
564 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)], 541 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)],
@@ -566,7 +543,7 @@ void _decode_opc(DisasContext * ctx) @@ -566,7 +543,7 @@ void _decode_opc(DisasContext * ctx)
566 return; 543 return;
567 case 0x6006: /* mov.l @Rm+,Rn */ 544 case 0x6006: /* mov.l @Rm+,Rn */
568 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 545 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
569 - gen_op_ldl_T0_T0(ctx); 546 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
570 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 547 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
571 if ( B11_8 != B7_4 ) 548 if ( B11_8 != B7_4 )
572 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)], 549 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)],
@@ -576,33 +553,33 @@ void _decode_opc(DisasContext * ctx) @@ -576,33 +553,33 @@ void _decode_opc(DisasContext * ctx)
576 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 553 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
577 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]); 554 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);
578 tcg_gen_add_i32(cpu_T[1], cpu_T[1], cpu_gregs[REG(0)]); 555 tcg_gen_add_i32(cpu_T[1], cpu_T[1], cpu_gregs[REG(0)]);
579 - gen_op_stb_T0_T1(ctx); 556 + tcg_gen_qemu_st8(cpu_T[0], cpu_T[1], ctx->memidx);
580 return; 557 return;
581 case 0x0005: /* mov.w Rm,@(R0,Rn) */ 558 case 0x0005: /* mov.w Rm,@(R0,Rn) */
582 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 559 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
583 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]); 560 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);
584 tcg_gen_add_i32(cpu_T[1], cpu_T[1], cpu_gregs[REG(0)]); 561 tcg_gen_add_i32(cpu_T[1], cpu_T[1], cpu_gregs[REG(0)]);
585 - gen_op_stw_T0_T1(ctx); 562 + tcg_gen_qemu_st16(cpu_T[0], cpu_T[1], ctx->memidx);
586 return; 563 return;
587 case 0x0006: /* mov.l Rm,@(R0,Rn) */ 564 case 0x0006: /* mov.l Rm,@(R0,Rn) */
588 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 565 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
589 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]); 566 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);
590 tcg_gen_add_i32(cpu_T[1], cpu_T[1], cpu_gregs[REG(0)]); 567 tcg_gen_add_i32(cpu_T[1], cpu_T[1], cpu_gregs[REG(0)]);
591 - gen_op_stl_T0_T1(ctx); 568 + tcg_gen_qemu_st32(cpu_T[0], cpu_T[1], ctx->memidx);
592 return; 569 return;
593 case 0x000c: /* mov.b @(R0,Rm),Rn */ 570 case 0x000c: /* mov.b @(R0,Rm),Rn */
594 tcg_gen_add_i32(cpu_T[0], cpu_gregs[REG(B7_4)], cpu_gregs[REG(0)]); 571 tcg_gen_add_i32(cpu_T[0], cpu_gregs[REG(B7_4)], cpu_gregs[REG(0)]);
595 - gen_op_ldb_T0_T0(ctx); 572 + tcg_gen_qemu_ld8s(cpu_T[0], cpu_T[0], ctx->memidx);
596 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 573 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
597 return; 574 return;
598 case 0x000d: /* mov.w @(R0,Rm),Rn */ 575 case 0x000d: /* mov.w @(R0,Rm),Rn */
599 tcg_gen_add_i32(cpu_T[0], cpu_gregs[REG(B7_4)], cpu_gregs[REG(0)]); 576 tcg_gen_add_i32(cpu_T[0], cpu_gregs[REG(B7_4)], cpu_gregs[REG(0)]);
600 - gen_op_ldw_T0_T0(ctx); 577 + tcg_gen_qemu_ld16s(cpu_T[0], cpu_T[0], ctx->memidx);
601 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 578 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
602 return; 579 return;
603 case 0x000e: /* mov.l @(R0,Rm),Rn */ 580 case 0x000e: /* mov.l @(R0,Rm),Rn */
604 tcg_gen_add_i32(cpu_T[0], cpu_gregs[REG(B7_4)], cpu_gregs[REG(0)]); 581 tcg_gen_add_i32(cpu_T[0], cpu_gregs[REG(B7_4)], cpu_gregs[REG(0)]);
605 - gen_op_ldl_T0_T0(ctx); 582 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
606 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]); 583 tcg_gen_mov_i32(cpu_gregs[REG(B11_8)], cpu_T[0]);
607 return; 584 return;
608 case 0x6008: /* swap.b Rm,Rn */ 585 case 0x6008: /* swap.b Rm,Rn */
@@ -737,20 +714,20 @@ void _decode_opc(DisasContext * ctx) @@ -737,20 +714,20 @@ void _decode_opc(DisasContext * ctx)
737 return; 714 return;
738 case 0x000f: /* mac.l @Rm+,@Rn+ */ 715 case 0x000f: /* mac.l @Rm+,@Rn+ */
739 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]); 716 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
740 - gen_op_ldl_T0_T0(ctx); 717 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
741 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]); 718 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
742 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 719 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
743 - gen_op_ldl_T0_T0(ctx); 720 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
744 tcg_gen_helper_0_2(helper_macl, cpu_T[0], cpu_T[1]); 721 tcg_gen_helper_0_2(helper_macl, cpu_T[0], cpu_T[1]);
745 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)], cpu_gregs[REG(B7_4)], 4); 722 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)], cpu_gregs[REG(B7_4)], 4);
746 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 4); 723 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 4);
747 return; 724 return;
748 case 0x400f: /* mac.w @Rm+,@Rn+ */ 725 case 0x400f: /* mac.w @Rm+,@Rn+ */
749 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]); 726 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
750 - gen_op_ldl_T0_T0(ctx); 727 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
751 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]); 728 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
752 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 729 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
753 - gen_op_ldl_T0_T0(ctx); 730 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
754 tcg_gen_helper_0_2(helper_macw, cpu_T[0], cpu_T[1]); 731 tcg_gen_helper_0_2(helper_macw, cpu_T[0], cpu_T[1]);
755 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 2); 732 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 2);
756 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)], cpu_gregs[REG(B7_4)], 2); 733 tcg_gen_addi_i32(cpu_gregs[REG(B7_4)], cpu_gregs[REG(B7_4)], 2);
@@ -951,9 +928,9 @@ void _decode_opc(DisasContext * ctx) @@ -951,9 +928,9 @@ void _decode_opc(DisasContext * ctx)
951 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 928 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
952 tcg_gen_add_i32(cpu_T[0], cpu_T[0], cpu_gbr); 929 tcg_gen_add_i32(cpu_T[0], cpu_T[0], cpu_gbr);
953 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]); 930 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
954 - gen_op_ldub_T0_T0(ctx); 931 + tcg_gen_qemu_ld8u(cpu_T[0], cpu_T[0], ctx->memidx);
955 tcg_gen_andi_i32(cpu_T[0], cpu_T[0], B7_0); 932 tcg_gen_andi_i32(cpu_T[0], cpu_T[0], B7_0);
956 - gen_op_stb_T0_T1(ctx); 933 + tcg_gen_qemu_st8(cpu_T[0], cpu_T[1], ctx->memidx);
957 return; 934 return;
958 case 0x8b00: /* bf label */ 935 case 0x8b00: /* bf label */
959 CHECK_NOT_DELAY_SLOT 936 CHECK_NOT_DELAY_SLOT
@@ -984,19 +961,19 @@ void _decode_opc(DisasContext * ctx) @@ -984,19 +961,19 @@ void _decode_opc(DisasContext * ctx)
984 case 0xc400: /* mov.b @(disp,GBR),R0 */ 961 case 0xc400: /* mov.b @(disp,GBR),R0 */
985 gen_op_stc_gbr_T0(); 962 gen_op_stc_gbr_T0();
986 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0); 963 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0);
987 - gen_op_ldb_T0_T0(ctx); 964 + tcg_gen_qemu_ld8s(cpu_T[0], cpu_T[0], ctx->memidx);
988 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]); 965 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]);
989 return; 966 return;
990 case 0xc500: /* mov.w @(disp,GBR),R0 */ 967 case 0xc500: /* mov.w @(disp,GBR),R0 */
991 gen_op_stc_gbr_T0(); 968 gen_op_stc_gbr_T0();
992 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 2); 969 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 2);
993 - gen_op_ldw_T0_T0(ctx); 970 + tcg_gen_qemu_ld16s(cpu_T[0], cpu_T[0], ctx->memidx);
994 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]); 971 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]);
995 return; 972 return;
996 case 0xc600: /* mov.l @(disp,GBR),R0 */ 973 case 0xc600: /* mov.l @(disp,GBR),R0 */
997 gen_op_stc_gbr_T0(); 974 gen_op_stc_gbr_T0();
998 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 4); 975 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 4);
999 - gen_op_ldl_T0_T0(ctx); 976 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
1000 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]); 977 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]);
1001 return; 978 return;
1002 case 0xc000: /* mov.b R0,@(disp,GBR) */ 979 case 0xc000: /* mov.b R0,@(disp,GBR) */
@@ -1004,44 +981,44 @@ void _decode_opc(DisasContext * ctx) @@ -1004,44 +981,44 @@ void _decode_opc(DisasContext * ctx)
1004 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0); 981 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0);
1005 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]); 982 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
1006 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 983 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
1007 - gen_op_stb_T0_T1(ctx); 984 + tcg_gen_qemu_st8(cpu_T[0], cpu_T[1], ctx->memidx);
1008 return; 985 return;
1009 case 0xc100: /* mov.w R0,@(disp,GBR) */ 986 case 0xc100: /* mov.w R0,@(disp,GBR) */
1010 gen_op_stc_gbr_T0(); 987 gen_op_stc_gbr_T0();
1011 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 2); 988 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 2);
1012 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]); 989 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
1013 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 990 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
1014 - gen_op_stw_T0_T1(ctx); 991 + tcg_gen_qemu_st16(cpu_T[0], cpu_T[1], ctx->memidx);
1015 return; 992 return;
1016 case 0xc200: /* mov.l R0,@(disp,GBR) */ 993 case 0xc200: /* mov.l R0,@(disp,GBR) */
1017 gen_op_stc_gbr_T0(); 994 gen_op_stc_gbr_T0();
1018 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 4); 995 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 4);
1019 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]); 996 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
1020 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 997 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
1021 - gen_op_stl_T0_T1(ctx); 998 + tcg_gen_qemu_st32(cpu_T[0], cpu_T[1], ctx->memidx);
1022 return; 999 return;
1023 case 0x8000: /* mov.b R0,@(disp,Rn) */ 1000 case 0x8000: /* mov.b R0,@(disp,Rn) */
1024 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 1001 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
1025 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B7_4)]); 1002 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B7_4)]);
1026 tcg_gen_addi_i32(cpu_T[1], cpu_T[1], B3_0); 1003 tcg_gen_addi_i32(cpu_T[1], cpu_T[1], B3_0);
1027 - gen_op_stb_T0_T1(ctx); 1004 + tcg_gen_qemu_st8(cpu_T[0], cpu_T[1], ctx->memidx);
1028 return; 1005 return;
1029 case 0x8100: /* mov.w R0,@(disp,Rn) */ 1006 case 0x8100: /* mov.w R0,@(disp,Rn) */
1030 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 1007 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
1031 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B7_4)]); 1008 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B7_4)]);
1032 tcg_gen_addi_i32(cpu_T[1], cpu_T[1], B3_0 * 2); 1009 tcg_gen_addi_i32(cpu_T[1], cpu_T[1], B3_0 * 2);
1033 - gen_op_stw_T0_T1(ctx); 1010 + tcg_gen_qemu_st16(cpu_T[0], cpu_T[1], ctx->memidx);
1034 return; 1011 return;
1035 case 0x8400: /* mov.b @(disp,Rn),R0 */ 1012 case 0x8400: /* mov.b @(disp,Rn),R0 */
1036 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 1013 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
1037 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B3_0); 1014 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B3_0);
1038 - gen_op_ldb_T0_T0(ctx); 1015 + tcg_gen_qemu_ld8s(cpu_T[0], cpu_T[0], ctx->memidx);
1039 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]); 1016 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]);
1040 return; 1017 return;
1041 case 0x8500: /* mov.w @(disp,Rn),R0 */ 1018 case 0x8500: /* mov.w @(disp,Rn),R0 */
1042 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]); 1019 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
1043 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B3_0 * 2); 1020 tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B3_0 * 2);
1044 - gen_op_ldw_T0_T0(ctx); 1021 + tcg_gen_qemu_ld16s(cpu_T[0], cpu_T[0], ctx->memidx);
1045 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]); 1022 tcg_gen_mov_i32(cpu_gregs[REG(0)], cpu_T[0]);
1046 return; 1023 return;
1047 case 0xc700: /* mova @(disp,PC),R0 */ 1024 case 0xc700: /* mova @(disp,PC),R0 */
@@ -1055,9 +1032,9 @@ void _decode_opc(DisasContext * ctx) @@ -1055,9 +1032,9 @@ void _decode_opc(DisasContext * ctx)
1055 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 1032 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
1056 tcg_gen_add_i32(cpu_T[0], cpu_T[0], cpu_gbr); 1033 tcg_gen_add_i32(cpu_T[0], cpu_T[0], cpu_gbr);
1057 tcg_gen_mov_i32(cpu_T[0], cpu_T[1]); 1034 tcg_gen_mov_i32(cpu_T[0], cpu_T[1]);
1058 - gen_op_ldub_T0_T0(ctx); 1035 + tcg_gen_qemu_ld8u(cpu_T[0], cpu_T[0], ctx->memidx);
1059 tcg_gen_ori_i32(cpu_T[0], cpu_T[0], B7_0); 1036 tcg_gen_ori_i32(cpu_T[0], cpu_T[0], B7_0);
1060 - gen_op_stb_T0_T1(ctx); 1037 + tcg_gen_qemu_st8(cpu_T[0], cpu_T[1], ctx->memidx);
1061 return; 1038 return;
1062 case 0xc300: /* trapa #imm */ 1039 case 0xc300: /* trapa #imm */
1063 CHECK_NOT_DELAY_SLOT 1040 CHECK_NOT_DELAY_SLOT
@@ -1073,7 +1050,7 @@ void _decode_opc(DisasContext * ctx) @@ -1073,7 +1050,7 @@ void _decode_opc(DisasContext * ctx)
1073 case 0xcc00: /* tst.b #imm,@(R0,GBR) */ 1050 case 0xcc00: /* tst.b #imm,@(R0,GBR) */
1074 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 1051 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
1075 tcg_gen_add_i32(cpu_T[0], cpu_T[0], cpu_gbr); 1052 tcg_gen_add_i32(cpu_T[0], cpu_T[0], cpu_gbr);
1076 - gen_op_ldub_T0_T0(ctx); 1053 + tcg_gen_qemu_ld8u(cpu_T[0], cpu_T[0], ctx->memidx);
1077 tcg_gen_andi_i32(cpu_T[0], cpu_T[0], B7_0); 1054 tcg_gen_andi_i32(cpu_T[0], cpu_T[0], B7_0);
1078 gen_cmp_imm(TCG_COND_EQ, cpu_T[0], 0); 1055 gen_cmp_imm(TCG_COND_EQ, cpu_T[0], 0);
1079 return; 1056 return;
@@ -1084,9 +1061,9 @@ void _decode_opc(DisasContext * ctx) @@ -1084,9 +1061,9 @@ void _decode_opc(DisasContext * ctx)
1084 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 1061 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
1085 tcg_gen_add_i32(cpu_T[0], cpu_T[0], cpu_gbr); 1062 tcg_gen_add_i32(cpu_T[0], cpu_T[0], cpu_gbr);
1086 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]); 1063 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
1087 - gen_op_ldub_T0_T0(ctx); 1064 + tcg_gen_qemu_ld8u(cpu_T[0], cpu_T[0], ctx->memidx);
1088 tcg_gen_xori_i32(cpu_T[0], cpu_T[0], B7_0); 1065 tcg_gen_xori_i32(cpu_T[0], cpu_T[0], B7_0);
1089 - gen_op_stb_T0_T1(ctx); 1066 + tcg_gen_qemu_st8(cpu_T[0], cpu_T[1], ctx->memidx);
1090 return; 1067 return;
1091 } 1068 }
1092 1069
@@ -1097,7 +1074,7 @@ void _decode_opc(DisasContext * ctx) @@ -1097,7 +1074,7 @@ void _decode_opc(DisasContext * ctx)
1097 return; 1074 return;
1098 case 0x4087: /* ldc.l @Rm+,Rn_BANK */ 1075 case 0x4087: /* ldc.l @Rm+,Rn_BANK */
1099 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]); 1076 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
1100 - gen_op_ldl_T0_T0(ctx); 1077 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
1101 tcg_gen_mov_i32(cpu_gregs[ALTREG(B6_4)], cpu_T[0]); 1078 tcg_gen_mov_i32(cpu_gregs[ALTREG(B6_4)], cpu_T[0]);
1102 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 4); 1079 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 4);
1103 return; 1080 return;
@@ -1110,7 +1087,7 @@ void _decode_opc(DisasContext * ctx) @@ -1110,7 +1087,7 @@ void _decode_opc(DisasContext * ctx)
1110 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]); 1087 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);
1111 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[ALTREG(B6_4)]); 1088 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[ALTREG(B6_4)]);
1112 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 4); 1089 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 4);
1113 - gen_op_stl_T0_T1(ctx); 1090 + tcg_gen_qemu_st32(cpu_T[0], cpu_T[1], ctx->memidx);
1114 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 4); 1091 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)], cpu_gregs[REG(B11_8)], 4);
1115 return; 1092 return;
1116 } 1093 }
@@ -1161,8 +1138,7 @@ void _decode_opc(DisasContext * ctx) @@ -1161,8 +1138,7 @@ void _decode_opc(DisasContext * ctx)
1161 extrald \ 1138 extrald \
1162 return; \ 1139 return; \
1163 case ldpnum: \ 1140 case ldpnum: \
1164 - tcg_gen_mov_i32 (cpu_T[0], cpu_gregs[REG(B11_8)]); \  
1165 - gen_op_ldl_T0_T0 (ctx); \ 1141 + tcg_gen_qemu_ld32s (cpu_T[0], cpu_gregs[REG(B11_8)], ctx->memidx); \
1166 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], \ 1142 tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], \
1167 cpu_gregs[REG(B11_8)], 4); \ 1143 cpu_gregs[REG(B11_8)], 4); \
1168 gen_op_##ldop##_T0_##reg (); \ 1144 gen_op_##ldop##_T0_##reg (); \
@@ -1174,12 +1150,8 @@ void _decode_opc(DisasContext * ctx) @@ -1174,12 +1150,8 @@ void _decode_opc(DisasContext * ctx)
1174 return; \ 1150 return; \
1175 case stpnum: \ 1151 case stpnum: \
1176 gen_op_##stop##_##reg##_T0 (); \ 1152 gen_op_##stop##_##reg##_T0 (); \
1177 - tcg_gen_subi_i32(cpu_gregs[REG(B11_8)], \  
1178 - cpu_gregs[REG(B11_8)], 4); \  
1179 - tcg_gen_mov_i32 (cpu_T[1], cpu_gregs[REG(B11_8)]); \  
1180 - tcg_gen_addi_i32(cpu_gregs[REG(B11_8)], \  
1181 - cpu_gregs[REG(B11_8)], 4); \  
1182 - gen_op_stl_T0_T1 (ctx); \ 1153 + tcg_gen_subi_i32(cpu_T[1], cpu_gregs[REG(B11_8)], 4); \
  1154 + tcg_gen_qemu_st32 (cpu_T[0], cpu_T[1], ctx->memidx); \
1183 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)], \ 1155 tcg_gen_subi_i32(cpu_gregs[REG(B11_8)], \
1184 cpu_gregs[REG(B11_8)], 4); \ 1156 cpu_gregs[REG(B11_8)], 4); \
1185 return; 1157 return;
@@ -1199,22 +1171,22 @@ void _decode_opc(DisasContext * ctx) @@ -1199,22 +1171,22 @@ void _decode_opc(DisasContext * ctx)
1199 case 0x00c3: /* movca.l R0,@Rm */ 1171 case 0x00c3: /* movca.l R0,@Rm */
1200 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]); 1172 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
1201 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]); 1173 tcg_gen_mov_i32(cpu_T[1], cpu_gregs[REG(B11_8)]);
1202 - gen_op_stl_T0_T1(ctx); 1174 + tcg_gen_qemu_st32(cpu_T[0], cpu_T[1], ctx->memidx);
1203 return; 1175 return;
1204 case 0x0029: /* movt Rn */ 1176 case 0x0029: /* movt Rn */
1205 tcg_gen_andi_i32(cpu_gregs[REG(B11_8)], cpu_sr, SR_T); 1177 tcg_gen_andi_i32(cpu_gregs[REG(B11_8)], cpu_sr, SR_T);
1206 return; 1178 return;
1207 case 0x0093: /* ocbi @Rn */ 1179 case 0x0093: /* ocbi @Rn */
1208 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]); 1180 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
1209 - gen_op_ldl_T0_T0(ctx); 1181 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
1210 return; 1182 return;
1211 case 0x00a3: /* ocbp @Rn */ 1183 case 0x00a3: /* ocbp @Rn */
1212 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]); 1184 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
1213 - gen_op_ldl_T0_T0(ctx); 1185 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
1214 return; 1186 return;
1215 case 0x00b3: /* ocbwb @Rn */ 1187 case 0x00b3: /* ocbwb @Rn */
1216 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]); 1188 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
1217 - gen_op_ldl_T0_T0(ctx); 1189 + tcg_gen_qemu_ld32s(cpu_T[0], cpu_T[0], ctx->memidx);
1218 return; 1190 return;
1219 case 0x0083: /* pref @Rn */ 1191 case 0x0083: /* pref @Rn */
1220 return; 1192 return;
@@ -1261,10 +1233,10 @@ void _decode_opc(DisasContext * ctx) @@ -1261,10 +1233,10 @@ void _decode_opc(DisasContext * ctx)
1261 case 0x401b: /* tas.b @Rn */ 1233 case 0x401b: /* tas.b @Rn */
1262 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]); 1234 tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
1263 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]); 1235 tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
1264 - gen_op_ldub_T0_T0(ctx); 1236 + tcg_gen_qemu_ld8u(cpu_T[0], cpu_T[0], ctx->memidx);
1265 gen_cmp_imm(TCG_COND_EQ, cpu_T[0], 0); 1237 gen_cmp_imm(TCG_COND_EQ, cpu_T[0], 0);
1266 tcg_gen_ori_i32(cpu_T[0], cpu_T[0], 0x80); 1238 tcg_gen_ori_i32(cpu_T[0], cpu_T[0], 0x80);
1267 - gen_op_stb_T0_T1(ctx); 1239 + tcg_gen_qemu_st8(cpu_T[0], cpu_T[1], ctx->memidx);
1268 return; 1240 return;
1269 case 0xf00d: /* fsts FPUL,FRn - FPSCR: Nothing */ 1241 case 0xf00d: /* fsts FPUL,FRn - FPSCR: Nothing */
1270 gen_op_movl_fpul_FT0(); 1242 gen_op_movl_fpul_FT0();