diff options
| author | hachem <im@hachem.wtf> | 2026-09-10 04:42:33 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-09-10 04:42:33 +0200 |
| commit | bf157cf09b8b0888c54a165b887309a4e801f608 (patch) | |
| tree | b72735972c2edb46c9324a74aeda9ff46c64682a /src/args.c | |
| parent | bf3bd19f79936fa519a5285701763da58935592a (diff) | |
feat: add aarch64 as target
Diffstat (limited to 'src/args.c')
| -rw-r--r-- | src/args.c | 19 |
1 files changed, 12 insertions, 7 deletions
@@ -6,21 +6,26 @@ #define HDASS_VERSION "0.1.0" -static bool match_assembler(const char* name, enum Assembler* out) +static bool match_target(const char* name, enum Target* out) { if (strcmp(name, "nasm") == 0) { - *out = ASSEMBLER_NASM; + *out = TARGET_NASM; return true; } if (strcmp(name, "fasm") == 0) { - *out = ASSEMBLER_FASM; + *out = TARGET_FASM; return true; } if (strcmp(name, "masm") == 0) { - *out = ASSEMBLER_MASM; + *out = TARGET_MASM; + return true; + } + if (strcmp(name, "arm64") == 0) + { + *out = TARGET_ARM64; return true; } return false; @@ -37,7 +42,7 @@ void print_usage(const char* program) printf("usage: %s <input.hdass> [options]\n\n", program); printf("options:\n"); printf(" -o, --output <file> write output to <file> (default: stdout)\n"); - printf(" -t, --target <name> target assembler: nasm, fasm, masm (default: nasm)\n"); + printf(" -t, --target <name> target: nasm, fasm, masm, arm64 (default: nasm)\n"); printf(" -h, --help print this help and exit\n"); printf(" -v, --version print version and exit\n"); } @@ -48,7 +53,7 @@ enum ParseResult parse_args(int argc, char** argv, struct Args* args) args->input_path = NULL; args->output_path = NULL; - args->target = ASSEMBLER_NASM; + args->target = TARGET_NASM; for (int i = 1; i < argc; i += 1) { @@ -86,7 +91,7 @@ enum ParseResult parse_args(int argc, char** argv, struct Args* args) fprintf(stderr, "error: '%s' requires an argument\n", arg); return PARSE_ERROR; } - if (!match_assembler(argv[i], &args->target)) + if (!match_target(argv[i], &args->target)) { fprintf(stderr, "error: unknown target '%s'\n", argv[i]); return PARSE_ERROR; |
