From 15c8482dd3f8fbe3ea18c4d145e7b622dbc3f148 Mon Sep 17 00:00:00 2001 From: sBubshait Date: Thu, 20 Jun 2024 04:49:56 +0100 Subject: [PATCH] Update parseDirective to use getImmediate even without hashtag --- src/assembler/parse.c | 5 +---- src/assembler/string_util.c | 6 ++---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/assembler/parse.c b/src/assembler/parse.c index d80bfc6..10cc270 100644 --- a/src/assembler/parse.c +++ b/src/assembler/parse.c @@ -130,10 +130,7 @@ static void parse_instruction(char asmLine[], a64inst_instruction *instr) { } static void parseDirective(a64inst_instruction *instr, char *opcode, char *tokens[], int tokensCount) { - char intValue[strlen(tokens[1]) + 1]; - *intValue = '#'; - strcpy(intValue + 1, tokens[1]); - instr->data.DirectiveData.value = getImmediate(intValue); + instr->data.DirectiveData.value = getImmediate(tokens[1]); } static void parseSingleTransfer(a64inst_instruction *instr, char *opcode, char *tokens[], int tokensCount) { diff --git a/src/assembler/string_util.c b/src/assembler/string_util.c index e519ef4..3ddb9af 100644 --- a/src/assembler/string_util.c +++ b/src/assembler/string_util.c @@ -96,10 +96,8 @@ int getImmediate(char *str) { return 0; } - if (str[0] != '#') - return 0; - - str++; // skip # + if (str[0] == '#') + str++; // skip # if (strncmp(str, "0x", 2) == 0 || strncmp(str, "0X", 3) == 0) { // Hex