aboutsummaryrefslogtreecommitdiff
path: root/src/ir.hff
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-08-20 14:02:48 +0200
committerlemon <lsof@mailbox.org>2022-08-20 14:02:48 +0200
commit0ede7e7f9d6235092d9e3ae2df8b25445fb89c38 (patch)
tree54df7ec7aeeab5e2209c6e4be33dc6c5ed696848 /src/ir.hff
parent46e1f128fd310bd29a2b4335b36c60d6cc0aa3a7 (diff)
more IR progress
Diffstat (limited to 'src/ir.hff')
-rw-r--r--src/ir.hff15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/ir.hff b/src/ir.hff
index 987db3b..ec949ec 100644
--- a/src/ir.hff
+++ b/src/ir.hff
@@ -18,6 +18,8 @@ struct IRValue {
BImm bool,
Null,
Tmp int,
+ Local *Decl,
+ Global *Decl,
}
}
@@ -28,7 +30,9 @@ enum union IRArg {
}
enum IRInstT {
+ nop,
neg,
+ not,
compl,
fneg,
add,
@@ -46,15 +50,24 @@ enum IRInstT {
fsub,
fmul,
fdiv,
+ eq,
+ neq,
+ lt,
+ lteq,
copy,
+ load,
+ store,
call,
+ b,
+ beqz,
ret0,
+ ret,
}
struct IRInst {
t IRInstT,
next *IRInst,
- cond *IRInst,
+ branch *IRInst,
call_nargs int,
args [0]IRArg,
}