make arm use branch_lsteners

This commit is contained in:
Torsten Ruger
2018-06-19 10:51:03 +03:00
parent 9fc7f9b528
commit 956c2ebe54
4 changed files with 16 additions and 0 deletions

View File

@ -41,6 +41,11 @@ module Arm
end
end
# if branch_to is implemented it must return the label it branches to
def branch_to
@first unless opcode == :swi
end
def handle_call(io)
case @first
when Risc::Label

View File

@ -38,6 +38,7 @@ module Elf
@machine.object_positions.each do |slot , position|
next if slot.is_a?(Parfait::BinaryCode)
next if slot.class.name.include?("Arm")
if( slot.respond_to? :rxf_reference_name )
label = "#{slot.rxf_reference_name}"
else

View File

@ -97,6 +97,7 @@ module Risc
instruction = instruction.next
end
branches.each do |branch|
next if branch.branch_to.nil? #nil allowed for when there is no branch
label_pos = Position.get(branch.branch_to)
label_pos.position_listener( BranchListener.new(branch) )
end