fix tests after register allocation work

This commit is contained in:
Torsten Ruger
2014-05-24 16:52:54 +03:00
parent 4a67504a61
commit 1e326e00b9
6 changed files with 15 additions and 20 deletions

View File

@ -25,7 +25,15 @@ module Arm
end
def assemble(io)
build
if (@first.is_a?(Array))
@operand = 0
@first.each do |r|
raise "nil register in push, index #{r}- #{inspect}" if r.nil?
@operand |= (1 << reg_code(r))
end
else
raise "invalid operand argument #{inspect}"
end
write_base = 1
if (opcode == :push)
pre_post_index = 1
@ -51,20 +59,5 @@ module Arm
val |= (cond << 16+4+ 1+1+1+1 +2+2)
io.write_uint32 val
end
private
# Build representation for source value
def build
regs = @first
if (regs.is_a?(Array))
@operand = 0
regs.each_with_index do |reg , index|
raise "nil register in push, index #{index}" if reg == nil
@operand |= (1 << reg_code(reg))
end
else
raise "invalid operand argument #{regs.inspect} #{inspect}"
end
end
end
end