Compare commits

...

2 Commits

Author SHA1 Message Date
Danila Fedorin 5c362d8e13 "Fix" register allocation. 2018-07-28 18:58:04 -07:00
Danila Fedorin 946db467ee Format code. 2018-07-28 17:53:07 -07:00
4 changed files with 113 additions and 113 deletions

View File

@ -86,16 +86,17 @@ module Chalk
when TreeBlock
table = Table.new(table)
tree.children.each do |child|
free += generate! child, table, free, free
free += generate! child, table, free, free + 1
end
when TreeVar
entry = table[tree.name]?
if entry == nil
entry = VarEntry.new free
free += 1
table[tree.name] = entry
end
raise "Unknown variable" unless entry.is_a?(VarEntry)
generate! tree.expr, table, entry.register, free + 1
generate! tree.expr, table, entry.register, free
return 1
when TreeAssign
entry = table[tree.name]?
@ -118,7 +119,7 @@ module Chalk
when TreeWhile
before_cond = @instructions.size
generate! tree.condition, table, free, free + 1
sne target, 0
sne free, 0
cond_jump = jr 0
old_size = @instructions.size

View File

@ -32,7 +32,6 @@ module Chalk
def generate!(emitter, params, table, target, free)
emitter.generate! params[0], table, free, free + 1
emitter.instructions << GetFontInstruction.new free
end
end