comparison m68k_to_x86.c @ 77:313a0e2228f1

Removed some old debug printfs
author Mike Pavone <pavone@retrodev.com>
date Fri, 21 Dec 2012 21:26:16 -0800
parents 187c65f40a64
children 463641032588
comparison
equal deleted inserted replaced
76:187c65f40a64 77:313a0e2228f1
410 while(cur) 410 while(cur)
411 { 411 {
412 uint8_t * native = get_native_address(opts->native_code_map, cur->address); 412 uint8_t * native = get_native_address(opts->native_code_map, cur->address);
413 if (native) { 413 if (native) {
414 int32_t disp = native - (cur->dest + 4); 414 int32_t disp = native - (cur->dest + 4);
415 printf("Native dest: %p, Offset address: %p, displacement: %X\n", native, cur->dest, disp);
416 uint8_t * out = cur->dest; 415 uint8_t * out = cur->dest;
417 *(out++) = disp; 416 *(out++) = disp;
418 disp >>= 8; 417 disp >>= 8;
419 *(out++) = disp; 418 *(out++) = disp;
420 disp >>= 8; 419 disp >>= 8;
463 flags_reg = src.base; 462 flags_reg = src.base;
464 } else { 463 } else {
465 if (reg >= 0) { 464 if (reg >= 0) {
466 flags_reg = reg; 465 flags_reg = reg;
467 } else { 466 } else {
468 printf("moving %d to temp register %d\n", src.disp, SCRATCH1);
469 dst = mov_ir(dst, src.disp, SCRATCH1, SZ_D); 467 dst = mov_ir(dst, src.disp, SCRATCH1, SZ_D);
470 src.mode = MODE_REG_DIRECT; 468 src.mode = MODE_REG_DIRECT;
471 flags_reg = src.base = SCRATCH1; 469 flags_reg = src.base = SCRATCH1;
472 } 470 }
473 } 471 }
482 dst = mov_rdisp8r(dst, src.base, src.disp, reg, inst->extra.size); 480 dst = mov_rdisp8r(dst, src.base, src.disp, reg, inst->extra.size);
483 } else { 481 } else {
484 dst = mov_ir(dst, src.disp, reg, inst->extra.size); 482 dst = mov_ir(dst, src.disp, reg, inst->extra.size);
485 } 483 }
486 } else if(src.mode == MODE_REG_DIRECT) { 484 } else if(src.mode == MODE_REG_DIRECT) {
487 printf("mov_rrdisp8 from reg %d to offset %d from reg %d (%d)\n", src.base, (int)reg_offset(&(inst->dst)), CONTEXT, inst->dst.params.regs.pri);
488 dst = mov_rrdisp8(dst, src.base, CONTEXT, reg_offset(&(inst->dst)), inst->extra.size); 485 dst = mov_rrdisp8(dst, src.base, CONTEXT, reg_offset(&(inst->dst)), inst->extra.size);
489 } else { 486 } else {
490 dst = mov_irdisp8(dst, src.disp, CONTEXT, reg_offset(&(inst->dst)), inst->extra.size); 487 dst = mov_irdisp8(dst, src.disp, CONTEXT, reg_offset(&(inst->dst)), inst->extra.size);
491 } 488 }
492 dst = cmp_ir(dst, 0, flags_reg, inst->extra.size); 489 dst = cmp_ir(dst, 0, flags_reg, inst->extra.size);
747 dst = call(dst, (uint8_t *)m68k_read_long_scratch1); 744 dst = call(dst, (uint8_t *)m68k_read_long_scratch1);
748 } else { 745 } else {
749 dst = call(dst, (uint8_t *)m68k_read_word_scratch1); 746 dst = call(dst, (uint8_t *)m68k_read_word_scratch1);
750 } 747 }
751 if (reg > 7) { 748 if (reg > 7) {
752 printf("movem.%c to a%d\n", (inst->extra.size == OPSIZE_WORD ? 'w' : 'l'), reg-8);
753 if (opts->aregs[reg-8] >= 0) { 749 if (opts->aregs[reg-8] >= 0) {
754 dst = mov_rr(dst, SCRATCH1, opts->aregs[reg-8], inst->extra.size); 750 dst = mov_rr(dst, SCRATCH1, opts->aregs[reg-8], inst->extra.size);
755 } else { 751 } else {
756 dst = mov_rrdisp8(dst, SCRATCH1, CONTEXT, offsetof(m68k_context, aregs) + sizeof(uint32_t) * (reg-8), inst->extra.size); 752 dst = mov_rrdisp8(dst, SCRATCH1, CONTEXT, offsetof(m68k_context, aregs) + sizeof(uint32_t) * (reg-8), inst->extra.size);
757 } 753 }
758 } else { 754 } else {
759 printf("movem.%c to d%d\n", (inst->extra.size == OPSIZE_WORD ? 'w' : 'l'), reg);
760 if (opts->dregs[reg] >= 0) { 755 if (opts->dregs[reg] >= 0) {
761 dst = mov_rr(dst, SCRATCH1, opts->dregs[reg], inst->extra.size); 756 dst = mov_rr(dst, SCRATCH1, opts->dregs[reg], inst->extra.size);
762 } else { 757 } else {
763 dst = mov_rrdisp8(dst, SCRATCH1, CONTEXT, offsetof(m68k_context, dregs) + sizeof(uint32_t) * (reg), inst->extra.size); 758 dst = mov_rrdisp8(dst, SCRATCH1, CONTEXT, offsetof(m68k_context, dregs) + sizeof(uint32_t) * (reg), inst->extra.size);
764 } 759 }
919 dst = mov_ir(dst, after, SCRATCH1, SZ_D); 914 dst = mov_ir(dst, after, SCRATCH1, SZ_D);
920 dst = push_r(dst, SCRATCH1); 915 dst = push_r(dst, SCRATCH1);
921 dst = sub_ir(dst, 4, opts->aregs[7], SZ_D); 916 dst = sub_ir(dst, 4, opts->aregs[7], SZ_D);
922 dst = mov_rr(dst, opts->aregs[7], SCRATCH2, SZ_D); 917 dst = mov_rr(dst, opts->aregs[7], SCRATCH2, SZ_D);
923 dst = call(dst, (char *)m68k_write_long_highfirst); 918 dst = call(dst, (char *)m68k_write_long_highfirst);
924 printf("bsr@%X: after=%X, disp=%X, dest=%X\n", inst->address, after, disp, after+disp);
925 uint8_t * dest_addr = get_native_address(opts->native_code_map, after + disp); 919 uint8_t * dest_addr = get_native_address(opts->native_code_map, after + disp);
926 if (!dest_addr) { 920 if (!dest_addr) {
927 opts->deferred = defer_address(opts->deferred, after + disp, dst + 1); 921 opts->deferred = defer_address(opts->deferred, after + disp, dst + 1);
928 //dummy address to be replaced later 922 //dummy address to be replaced later
929 dest_addr = dst + 5; 923 dest_addr = dst + 5;
937 uint8_t * translate_m68k_bcc(uint8_t * dst, m68kinst * inst, x86_68k_options * opts) 931 uint8_t * translate_m68k_bcc(uint8_t * dst, m68kinst * inst, x86_68k_options * opts)
938 { 932 {
939 //TODO: Add cycles 933 //TODO: Add cycles
940 int32_t disp = inst->src.params.immed; 934 int32_t disp = inst->src.params.immed;
941 uint32_t after = inst->address + 2; 935 uint32_t after = inst->address + 2;
942 printf("bcc@%X: after=%X, disp=%X, dest=%X\n", inst->address, after, disp, after+disp);
943 uint8_t * dest_addr = get_native_address(opts->native_code_map, after + disp); 936 uint8_t * dest_addr = get_native_address(opts->native_code_map, after + disp);
944 if (inst->extra.cond == COND_TRUE) { 937 if (inst->extra.cond == COND_TRUE) {
945 if (!dest_addr) { 938 if (!dest_addr) {
946 opts->deferred = defer_address(opts->deferred, after + disp, dst + 1); 939 opts->deferred = defer_address(opts->deferred, after + disp, dst + 1);
947 //dummy address to be replaced later, make sure it generates a 4-byte displacement 940 //dummy address to be replaced later, make sure it generates a 4-byte displacement