From c1a44ed41dcf92d1567ab927d7f1675d6918aff9 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Wed, 11 Sep 2024 12:47:27 -0400 Subject: add ascii and asciiz directives, fix symtab bug --- masm/parse.h | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'masm/parse.h') diff --git a/masm/parse.h b/masm/parse.h index 9181899..3052d51 100644 --- a/masm/parse.h +++ b/masm/parse.h @@ -9,9 +9,33 @@ #include #include -/// -/// reference -/// +/* mips directive types */ +enum mips_directive_type { + MIPS_DIRECTIVE_ALIGN, + MIPS_DIRECTIVE_SPACE, + MIPS_DIRECTIVE_WORD, + MIPS_DIRECTIVE_HALF, + MIPS_DIRECTIVE_BYTE, + MIPS_DIRECTIVE_SECTION, + MIPS_DIRECTIVE_EXTERN, + MIPS_DIRECTIVE_GLOBL, + MIPS_DIRECTIVE_ASCII, + MIPS_DIRECTIVE_ASCIIZ, +}; + +/* mip32 directive */ +struct mips_directive { + enum mips_directive_type type; + uint32_t len; // used for words, halfs, bytes + union { + uint16_t align; + uint16_t space; + uint32_t words[MAX_ARG_LENGTH]; + uint16_t halfs[MAX_ARG_LENGTH]; + uint8_t bytes[MAX_ARG_LENGTH]; + char name[MAX_ARG_LENGTH]; + }; +}; enum reference_type { REF_NONE, -- cgit v1.2.3-freya