diff options
| author | Marin Ivanov <[email protected]> | 2024-05-04 03:01:57 +0300 |
|---|---|---|
| committer | Marin Ivanov <[email protected]> | 2024-05-04 03:01:57 +0300 |
| commit | 7641aaeb6a59c45baa0d25d27b9e2c6c25e183b8 (patch) | |
| tree | 1986d4dc138b8b112019354693fcc804a454542e | |
| parent | cd21b90feaa9b66296b8614023349fae7d314b4b (diff) | |
add dummy type and size directives
| -rw-r--r-- | asm.peg | 7 | ||||
| -rw-r--r-- | main.c | 4 | ||||
| -rw-r--r-- | minias.h | 2 |
3 files changed, 13 insertions, 0 deletions
@@ -41,6 +41,10 @@ directive = { $$ = fd; } | sd:section-directive { $$ = sd; } + | type-directive + { $$.kind = ASM_DIR_TYPE; } + | size-directive + { $$.kind = ASM_DIR_SIZE; } fill-directive = "fill" ws r:number ws? "," ws? s:number ws? "," ws? v:number @@ -62,6 +66,9 @@ section-type = "@nobits" { $$.i64 = SHT_NOBITS; } | "@progbits" { $$.i64 = SHT_PROGBITS; } +type-directive = "type" ws ident "," ws "@function" +size-directive = "size" ws ident "," ws ".-" ident + label = i:ident ':' { $$.label = (Label){.kind = ASM_LABEL, .name = i.charptr}; } @@ -810,6 +810,10 @@ assemble(void) sym = getsym(v->set.sym); sym->value = v->set.value; break; + case ASM_DIR_TYPE: + break; + case ASM_DIR_SIZE: + break; case ASM_LABEL: sym = getsym(v->label.name); if (sym->defined) @@ -68,6 +68,8 @@ typedef enum { ASM_DIR_INT, ASM_DIR_QUAD, ASM_DIR_BALIGN, + ASM_DIR_TYPE, + ASM_DIR_SIZE, // Instructions. ASM_JMP, ASM_INSTR, |
