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