Simplify assignment op[s

This commit is contained in:
Ethan Girouard 2024-12-11 16:27:17 -05:00
parent b013ba0e55
commit fd16a12e7c
Signed by: eta357
GPG Key ID: 7BCDC36DFD11C146

View File

@ -265,23 +265,18 @@ codegenStmt (TWhile cond body) = mdo
end <- block `named` "end"
return ()
codegenStmt (TAssign BaseAssign l@(t, (TId name)) e) = do
codegenStmt (TAssign BaseAssign l e) = do
op <- codegenExpr e
var <- codegenLVal l
store var 0 op
codegenStmt (TAssign BaseAssign l@((StructType tName), (LTMember ((_, TId sName)) field)) e) = do
op <- codegenExpr e
struct <- codegenLVal l
store struct 0 op
codegenStmt (TAssign AddAssign l@(t, (TId name)) e) = do
codegenStmt (TAssign AddAssign l e) = do
op <- codegenExpr e
var <- codegenLVal l
val <- load var 0
store var 0 =<< add val op
codegenStmt (TAssign SubAssign l@(t, (TId name)) e) = do
codegenStmt (TAssign SubAssign l e) = do
op <- codegenExpr e
var <- codegenLVal l
val <- load var 0