diff options
author | Freya Murphy <freya@freyacat.org> | 2024-09-11 12:47:27 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-09-11 12:47:27 -0400 |
commit | c1a44ed41dcf92d1567ab927d7f1675d6918aff9 (patch) | |
tree | a9c385264b6a52087856addf568c941c56a5800d /masm/asm.c | |
parent | refactor (diff) | |
download | mips-c1a44ed41dcf92d1567ab927d7f1675d6918aff9.tar.gz mips-c1a44ed41dcf92d1567ab927d7f1675d6918aff9.tar.bz2 mips-c1a44ed41dcf92d1567ab927d7f1675d6918aff9.zip |
add ascii and asciiz directives, fix symtab bug
Diffstat (limited to 'masm/asm.c')
-rw-r--r-- | masm/asm.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -165,6 +165,26 @@ static int handle_directive(struct assembler *assembler, break; } + + case MIPS_DIRECTIVE_ASCII: { + struct section_entry entry; + entry.type = ENT_STR; + entry.size = strlen(directive->name); + memcpy(entry.str, directive->name, entry.size); + if (sec_push(assembler->sectab.current, entry)) + return M_ERROR; + break; + } + + case MIPS_DIRECTIVE_ASCIIZ: { + struct section_entry entry; + entry.type = ENT_STR; + entry.size = strlen(directive->name) + 1; + memcpy(entry.str, directive->name, entry.size); + if (sec_push(assembler->sectab.current, entry)) + return M_ERROR; + break; + } } return M_SUCCESS; |