module Crabstone::Register
Module for arch/<version>/<arch>_const.rb to extend.
Public Instance Methods
register(reg)
click to toggle source
@param [Integer, String, Symbol] reg @return [Integer]
# File lib/crabstone/arch/register.rb, line 10 def register(reg) return reg if value?(reg) dict[reg.to_s.upcase] || invalid end
Private Instance Methods
dict()
click to toggle source
# File lib/crabstone/arch/register.rb, line 18 def dict return @dict if defined?(@dict) keys = constants.select { |k| k.to_s.start_with?('REG_') } @dict = keys.map { |k| [k.to_s[4..-1], const_get(k)] }.to_h.freeze end
invalid()
click to toggle source
# File lib/crabstone/arch/register.rb, line 30 def invalid dict['INVALID'] end
value?(val)
click to toggle source
# File lib/crabstone/arch/register.rb, line 25 def value?(val) @val_set ||= Set.new(dict.values) @val_set.member?(val) end