aboutsummaryrefslogtreecommitdiff
path: root/src/args.c
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-09-10 04:42:33 +0200
committerhachem <im@hachem.wtf>2026-09-10 04:42:33 +0200
commitbf157cf09b8b0888c54a165b887309a4e801f608 (patch)
treeb72735972c2edb46c9324a74aeda9ff46c64682a /src/args.c
parentbf3bd19f79936fa519a5285701763da58935592a (diff)
feat: add aarch64 as target
Diffstat (limited to 'src/args.c')
-rw-r--r--src/args.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/args.c b/src/args.c
index b31def5..beb4c5d 100644
--- a/src/args.c
+++ b/src/args.c
@@ -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;