Improved x64 encoder
This commit is contained in:
parent
c1d3e0d11b
commit
81fcb50e77
5 changed files with 46 additions and 23 deletions
|
@ -114,17 +114,17 @@ func (f *Function) CompileInstruction(line token.List) error {
|
|||
}
|
||||
|
||||
if expr.Token.Kind == token.Operator {
|
||||
name := expr.Children[0].Token.Text()
|
||||
number, _ := strconv.Atoi(expr.Children[1].Token.Text())
|
||||
register := f.Variables[name].Register
|
||||
|
||||
switch expr.Token.Text() {
|
||||
case "+=":
|
||||
name := expr.Children[0].Token.Text()
|
||||
number, _ := strconv.Atoi(expr.Children[1].Token.Text())
|
||||
f.Assembler.AddRegisterNumber(f.Variables[name].Register, number)
|
||||
f.Assembler.AddRegisterNumber(register, number)
|
||||
return nil
|
||||
|
||||
case "-=":
|
||||
name := expr.Children[0].Token.Text()
|
||||
number, _ := strconv.Atoi(expr.Children[1].Token.Text())
|
||||
f.Assembler.SubRegisterNumber(f.Variables[name].Register, number)
|
||||
f.Assembler.SubRegisterNumber(register, number)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue