unifying register comstants
were in several files with different names many files touched, but just renames
This commit is contained in:
@ -70,7 +70,7 @@ module Virtual
|
||||
def locals_at l_block
|
||||
used =[]
|
||||
# call assigns the return register, but as it is in l_block, it is not asked.
|
||||
assigned = [ RegisterReference.new(Virtual::RegisterMachine.instance.return_register) ]
|
||||
assigned = [ Register::RegisterReference.new(Virtual::RegisterMachine.instance.return_register) ]
|
||||
l_block.reachable.each do |b|
|
||||
b.uses.each {|u|
|
||||
(used << u) unless assigned.include?(u)
|
||||
|
@ -36,7 +36,7 @@ module Virtual
|
||||
locals = {}
|
||||
expression.params.each_with_index do |param , index|
|
||||
arg = param.name
|
||||
register = RegisterReference.new(RegisterMachine.instance.receiver_register).next_reg_use(index + 1)
|
||||
register = Register::RegisterReference.new(RegisterMachine.instance.receiver_register).next_reg_use(index + 1)
|
||||
arg_value = Integer.new(register)
|
||||
locals[arg] = arg_value
|
||||
args << arg_value
|
||||
|
@ -23,13 +23,6 @@ module Virtual
|
||||
|
||||
class Message
|
||||
|
||||
SELF_REG = :r0
|
||||
MESSAGE_REG = :r1
|
||||
FRAME_REG = :r2
|
||||
NEW_MESSAGE_REG = :r3
|
||||
|
||||
TMP_REG = :r4
|
||||
|
||||
def initialize me , normal , exceptional
|
||||
@me = me
|
||||
@next_normal = normal
|
||||
|
@ -7,7 +7,7 @@ module Virtual
|
||||
new_codes = []
|
||||
# save return register and create a new frame
|
||||
# lr is link register, ie where arm stores the return address when call is issued
|
||||
new_codes << Register::SaveReturn.new( Virtual::Slot::MESSAGE_REGISTER , Virtual::RETURN_INDEX )
|
||||
new_codes << Register::SaveReturn.new( Register::RegisterReference.message_reg , Virtual::RETURN_INDEX )
|
||||
new_codes << Virtual::NewFrame.new
|
||||
block.replace(code , new_codes )
|
||||
end
|
||||
|
@ -16,10 +16,6 @@ module Virtual
|
||||
# Names for the slots avoid indexes
|
||||
|
||||
class Slot < Object
|
||||
MESSAGE_REGISTER = :r0
|
||||
SELF_REGISTER = :r1
|
||||
FRAME_REGISTER = :r2
|
||||
NEW_MESSAGE_REGISTER = :r3
|
||||
|
||||
attr_accessor :index , :type , :value
|
||||
|
||||
|
Reference in New Issue
Block a user