diff options
author | Carlos Maniero <carlos@maniero.me> | 2023-05-10 12:20:04 -0300 |
---|---|---|
committer | Carlos Maniero <carlos@maniero.me> | 2023-05-10 12:20:04 -0300 |
commit | a96a0cac034e16dcd7455a3b2fabf2b5b3e716bd (patch) | |
tree | fcd4d81007bba0dd934e136f78b195371e5f0326 /src/gas_assembly_generator.h | |
parent | 88630ebbea03e85119cf9795320a83cb846bdd20 (diff) |
gas: Compile boolean variable assignment
When the assignment value is a literal, it just assigns zero or one to
the variable stack's location. If the value is an expression, it
compiles the expression and assign zeros and ones based on expression
result.
Diffstat (limited to 'src/gas_assembly_generator.h')
-rw-r--r-- | src/gas_assembly_generator.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gas_assembly_generator.h b/src/gas_assembly_generator.h index 2e195fb..e400d2c 100644 --- a/src/gas_assembly_generator.h +++ b/src/gas_assembly_generator.h @@ -26,12 +26,14 @@ typedef enum evaluation_result_kind_t EVALUATION_RESULT_VOID, EVALUATION_RESULT_ON_RAX, EVALUATION_RESULT_ON_STACK, - EVALUATION_RESULT_AS_LITERAL_INTEGER + EVALUATION_RESULT_AS_LITERAL_INTEGER, + EVALUATION_RESULT_AS_LITERAL_BOOL } evaluation_result_kind_t; typedef union evaluation_result_data_t { int64_t literal_int; + bool literal_bool; int stack_offset; } evaluation_result_data_t; |