add register reference where symbols are allowed

This commit is contained in:
Torsten Ruger 2014-09-25 20:28:40 +03:00
parent df9d6284ae
commit 4d07113429
2 changed files with 3 additions and 3 deletions

View File

@ -25,7 +25,7 @@ module Arm
arg = @left arg = @left
arg = arg.symbol if( arg.is_a? ::Register::RegisterReference ) arg = arg.symbol if( arg.is_a? ::Register::RegisterReference )
#str / ldr are _serious instructions. With BIG possibilities not half are implemented #str / ldr are _serious instructions. With BIG possibilities not half are implemented
if (arg.is_a?(Symbol)) #symbol is register if (arg.is_a?(Symbol) or arg.is_a?(::Register::RegisterReference)) #symbol is register
rn = arg rn = arg
if @right if @right
operand = @right operand = @right
@ -73,7 +73,7 @@ module Arm
w = 0 #W flag w = 0 #W flag
byte_access = opcode.to_s[-1] == "b" ? 1 : 0 #B (byte) flag byte_access = opcode.to_s[-1] == "b" ? 1 : 0 #B (byte) flag
instuction_class = 0b01 # OPC_MEMORY_ACCESS instuction_class = 0b01 # OPC_MEMORY_ACCESS
if operand.is_a?(Symbol) if (operand.is_a?(Symbol) or operand.is_a?(::Register::RegisterReference))
val = reg_code(operand) val = reg_code(operand)
@pre_post_index = 0 @pre_post_index = 0
i = 1 # not quite sure about this, but it gives the output of as. read read read. i = 1 # not quite sure about this, but it gives the output of as. read read read.

View File

@ -65,7 +65,7 @@ module Arm
raise "only simple 2 byte implemented #{self.inspect}" if operand > 255 raise "only simple 2 byte implemented #{self.inspect}" if operand > 255
@extra = ::Register::RegisterMachine.instance.add( to , to , (right.integer && 0xFF) , shift_lsr: 8) @extra = ::Register::RegisterMachine.instance.add( to , to , (right.integer && 0xFF) , shift_lsr: 8)
end end
elsif (right.is_a?(Symbol)) elsif (right.is_a?(Symbol) or right.is_a?(::Register::RegisterReference))
operand = reg_code(right) operand = reg_code(right)
immediate = 0 # ie not immediate is register immediate = 0 # ie not immediate is register
else else