move unused addr table out of the way
This commit is contained in:
@ -1,48 +0,0 @@
|
||||
module Asm
|
||||
module Arm
|
||||
|
||||
# TODO actually find the closest somehow (DROPPED for now)
|
||||
def self.closest_addrtable(as)
|
||||
as.values.find do |obj|
|
||||
obj.is_a?(Asm::Arm::AddrTableObject)
|
||||
end || (raise Asm::AssemblyError.new('could not find addrtable to use', nil))
|
||||
end
|
||||
|
||||
|
||||
#this has been DROPPED for now (didn't work) and we can do without it
|
||||
class AddrTableObject
|
||||
def initialize
|
||||
@table = []
|
||||
@const = []
|
||||
end
|
||||
|
||||
# TODO don't create new entry if there's already an entry for the same label/const
|
||||
def add_label(label)
|
||||
d = [label, Asm::LabelObject.new]
|
||||
@table << d
|
||||
d[1]
|
||||
end
|
||||
|
||||
def add_const(const)
|
||||
d = [const, Asm::LabelObject.new]
|
||||
@const << d
|
||||
d[1]
|
||||
end
|
||||
|
||||
def assemble(io, as)
|
||||
@table.each do |pair|
|
||||
target_label, here_label = *pair
|
||||
here_label.assemble io, as
|
||||
as.add_relocation io.tell, target_label, Asm::Arm::R_ARM_ABS32,
|
||||
Asm::Arm::Instruction::RelocHandler
|
||||
io.write_uint32 0
|
||||
end
|
||||
@const.each do |pair|
|
||||
const, here_label = *pair
|
||||
here_label.assemble io, as
|
||||
io.write_uint32 const
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -1,5 +1,4 @@
|
||||
require 'asm/assembler'
|
||||
require "asm/arm/addr_table_object"
|
||||
require 'asm/arm/arm_assembler'
|
||||
require 'asm/arm/instruction'
|
||||
require 'asm/arm/generator_label'
|
||||
|
Reference in New Issue
Block a user