add reduce_int and fix bug

hardcoded operator, buh
reduce_int to avoid that long constant
This commit is contained in:
Torsten Ruger
2018-08-08 15:49:07 +03:00
parent f5ea51c4d0
commit 78466090b3
3 changed files with 14 additions and 1 deletions

View File

@ -52,6 +52,13 @@ module Risc
return index
end
# reduce integer to fixnum and add instruction if builder is used
def reduce_int
reduce = Risc.slot_to_reg( "int -> fix" , self , Parfait::Integer.integer_index , self)
builder.add_code(reduce) if builder
reduce
end
# when following variables in resolve_and_add, get a new RegisterValue
# that represents the new value.
# Ie in "normal case" a the same register, with the type of the slot
@ -151,7 +158,7 @@ module Risc
# create operator instruction for self and add
# doesn't read quite as smoothly as one would like, but better than the compiler version
def op( operator , right)
ret = Risc.op( "operator #{operator}" , :>> , self , right)
ret = Risc.op( "operator #{operator}" , operator , self , right)
builder.add_code(ret) if builder
ret
end