diff gdb_remote.c @ 2133:8554751f17b5

Remove use of get_native_pointer in 68K instruction decoding in preparation for word RAM interleaving
author Michael Pavone <pavone@retrodev.com>
date Thu, 17 Mar 2022 22:41:42 -0700
parents f80c6111e1ae
children 3350b3c8faa8
line wrap: on
line diff
--- a/gdb_remote.c	Thu Mar 17 22:40:49 2022 -0700
+++ b/gdb_remote.c	Thu Mar 17 22:41:42 2022 -0700
@@ -186,12 +186,7 @@
 		}
 		m68kinst inst;
 		genesis_context *gen = context->system;
-		uint16_t * pc_ptr = get_native_pointer(pc, (void **)context->mem_pointers, &context->options->gen);
-		if (!pc_ptr) {
-			fatal_error("Entered gdb remote debugger stub at address %X\n", pc);
-		}
-		uint16_t * after_pc = m68k_decode(pc_ptr, &inst, pc & 0xFFFFFF);
-		uint32_t after = pc + (after_pc-pc_ptr)*2;
+		uint32_t after = m68k_decode(m68k_instruction_fetch, context, &inst, pc & 0xFFFFFF);
 
 		if (inst.op == M68K_RTS) {
 			after = (read_dma_value(context->aregs[7]/2) << 16) | read_dma_value(context->aregs[7]/2 + 1);
@@ -414,12 +409,7 @@
 			case 'S': {
 				m68kinst inst;
 				genesis_context *gen = context->system;
-				uint16_t * pc_ptr = get_native_pointer(pc, (void **)context->mem_pointers, &context->options->gen);
-				if (!pc_ptr) {
-					fatal_error("Entered gdb remote debugger stub at address %X\n", pc);
-				}
-				uint16_t * after_pc = m68k_decode(pc_ptr, &inst, pc & 0xFFFFFF);
-				uint32_t after = pc + (after_pc-pc_ptr)*2;
+				uint32_t after = m68k_decode(m68k_instruction_fetch, context, &inst, pc & 0xFFFFFF);
 
 				if (inst.op == M68K_RTS) {
 					after = (read_dma_value(context->aregs[7]/2) << 16) | read_dma_value(context->aregs[7]/2 + 1);