diff disasm.c @ 2213:53411df7fc71

More 68K disassembler refactoring and fix Windows build failure
author Michael Pavone <pavone@retrodev.com>
date Mon, 29 Aug 2022 21:58:37 -0700
parents de3d20e58555
children 7591c67b8d1e
line wrap: on
line diff
--- a/disasm.c	Sun Aug 28 22:49:26 2022 -0700
+++ b/disasm.c	Mon Aug 29 21:58:37 2022 -0700
@@ -1,4 +1,7 @@
 #include "disasm.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stddef.h>
 
 label_def *find_label(disasm_context *context, uint32_t address)
 {
@@ -7,6 +10,15 @@
 	return tern_find_ptr(context->labels, key);
 }
 
+int format_label(char *dst, uint32_t address, disasm_context *context)
+{
+	label_def *def = find_label(context, address);
+	if (def && def->num_labels) {
+		return sprintf(dst, "%s", def->labels[0]);
+	}
+	return sprintf(dst, "ADR_%X", address);
+}
+
 label_def *add_find_label(disasm_context *context, uint32_t address)
 {
 	char key[MAX_INT_KEY_SIZE];