Mercurial > repos > blastem
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 |