Class: Udb::InstructionSubtype::Opcode

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/udb/obj/instruction.rb

Direct Known Subclasses

Udb::Instruction::Opcode

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, range)

Parameters:

  • name (String)
  • range (Range)


43
44
45
46
# File 'lib/udb/obj/instruction.rb', line 43

def initialize(name, range)
  @name = name
  @range = range
end

Instance Attribute Details

#nameString (readonly)

Returns:

  • (String)


37
38
39
# File 'lib/udb/obj/instruction.rb', line 37

def name
  @name
end

#rangeRange (readonly)

Returns:

  • (Range)


40
41
42
# File 'lib/udb/obj/instruction.rb', line 40

def range
  @range
end

Instance Method Details

#overlaps?(other) ⇒ Boolean

Parameters:

Returns:

  • (Boolean)


49
50
51
52
53
54
55
# File 'lib/udb/obj/instruction.rb', line 49

def overlaps?(other)
  if other.is_a?(Opcode)
    range.eql?(other.range) || range.cover?(other.range.first) || other.range.cover?(range.first)
  else
    other.location_bits.any? { |i| range.cover?(i) }
  end
end