fixes to get opal to work

opal has bug with << and |=, but changing syntax works
This commit is contained in:
Torsten Ruger 2015-07-12 10:01:45 +03:00
parent fa7d2ced6d
commit b670e058a9

View File

@ -26,7 +26,7 @@ module Arm
operand = 0
@first.each do |r|
raise "nil register in push, index #{r}- #{inspect}" if r.nil?
operand |= (1 << reg_code(r))
operand = operand | (1 << reg_code(r))
end
else
raise "invalid operand argument #{inspect}"
@ -46,14 +46,14 @@ module Arm
@rn = :sp # sp register
#assemble of old
val = operand
val |= (reg_code(@rn) << 16)
val |= (is_pop << 16+4) #20
val |= (write_base << 16+4+ 1)
val |= (@attributes[:update_status] << 16+4+ 1+1)
val |= (up_down << 16+4+ 1+1+1)
val |= (pre_post_index << 16+4+ 1+1+1+1)#24
val |= (instuction_class << 16+4+ 1+1+1+1 +2)
val |= (cond << 16+4+ 1+1+1+1 +2+2)
val = val | (reg_code(@rn) << 16)
val = val | (is_pop << 16+4) #20
val = val | (write_base << 16+4+ 1)
val = val | (@attributes[:update_status] << 16+4+ 1+1)
val = val | (up_down << 16+4+ 1+1+1)
val = val | (pre_post_index << 16+4+ 1+1+1+1)#24
val = val | (instuction_class << 16+4+ 1+1+1+1 +2)
val = val | (cond << 16+4+ 1+1+1+1 +2+2)
io.write_uint32 val
end