diff --git a/src/asm/Instructions.go b/src/asm/Instructions.go index 562e902..7d08676 100644 --- a/src/asm/Instructions.go +++ b/src/asm/Instructions.go @@ -58,15 +58,15 @@ type ( Base cpu.Register Index cpu.Register Source cpu.Register - Scale bool Length byte + Scale bool } StoreNumber struct { + Number int Base cpu.Register Index cpu.Register - Number int - Scale bool Length byte + Scale bool } Subtract rrr SubtractNumber rrn diff --git a/src/ast/AST.go b/src/ast/AST.go index 87daccf..ae206f6 100644 --- a/src/ast/AST.go +++ b/src/ast/AST.go @@ -37,8 +37,8 @@ type ( Body AST } Return struct { - Token token.Token Values []*expression.Expression + Token token.Token } Switch struct { Cases []Case diff --git a/src/ast/parseReturn.go b/src/ast/parseReturn.go index b124e09..8a89f02 100644 --- a/src/ast/parseReturn.go +++ b/src/ast/parseReturn.go @@ -12,5 +12,5 @@ func parseReturn(tokens token.List, file *fs.File) (Node, error) { } values := expression.NewList(tokens[1:]) - return &Return{Token: tokens[0], Values: values}, nil + return &Return{Values: values, Token: tokens[0]}, nil } \ No newline at end of file diff --git a/src/codegen/Function.go b/src/codegen/Function.go index b911b27..94ca52d 100644 --- a/src/codegen/Function.go +++ b/src/codegen/Function.go @@ -10,15 +10,15 @@ import ( // Function contains the state that is required to produce assembly code. type Function struct { - FullName string - Assembler asm.Assembler - Steps []*Step ValueToStep map[ssa.Value]*Step BlockToRegion map[*ssa.Block]region CPU *cpu.CPU + build *config.Build + FullName string + Assembler asm.Assembler + Steps []*Step Preserved set.Ordered[cpu.Register] Count count - build *config.Build isInit bool isExit bool needsFramePointer bool