Implemented constant folding

This commit is contained in:
Eduard Urbach 2024-07-29 14:44:16 +02:00
parent 315ad23e31
commit 67c7d1ec99
Signed by: eduard
GPG key ID: 49226B848C78F6C8
8 changed files with 118 additions and 1 deletions

View file

@ -10,6 +10,11 @@ import (
// ExpressionToRegister puts the result of an expression into the specified register.
func (f *Function) ExpressionToRegister(node *expression.Expression, register cpu.Register) error {
if node.IsFolded {
f.RegisterNumber(asm.MOVE, register, node.Value)
return nil
}
if node.IsLeaf() {
return f.TokenToRegister(node.Token, register)
}