comparison 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
comparison
equal deleted inserted replaced
2212:71b0cb7c34a6 2213:53411df7fc71
1 #include "disasm.h" 1 #include "disasm.h"
2 #include <stdlib.h>
3 #include <string.h>
4 #include <stddef.h>
2 5
3 label_def *find_label(disasm_context *context, uint32_t address) 6 label_def *find_label(disasm_context *context, uint32_t address)
4 { 7 {
5 char key[MAX_INT_KEY_SIZE]; 8 char key[MAX_INT_KEY_SIZE];
6 tern_sortable_int_key(address & context->address_mask, key); 9 tern_sortable_int_key(address & context->address_mask, key);
7 return tern_find_ptr(context->labels, key); 10 return tern_find_ptr(context->labels, key);
11 }
12
13 int format_label(char *dst, uint32_t address, disasm_context *context)
14 {
15 label_def *def = find_label(context, address);
16 if (def && def->num_labels) {
17 return sprintf(dst, "%s", def->labels[0]);
18 }
19 return sprintf(dst, "ADR_%X", address);
8 } 20 }
9 21
10 label_def *add_find_label(disasm_context *context, uint32_t address) 22 label_def *add_find_label(disasm_context *context, uint32_t address)
11 { 23 {
12 char key[MAX_INT_KEY_SIZE]; 24 char key[MAX_INT_KEY_SIZE];