Class: Udb::XlenCondition

Inherits:
Condition show all
Extended by:
T::Sig
Defined in:
lib/udb/condition.rb

Constant Summary

Constants inherited from Condition

Condition::EvalCallbackType, Condition::Xlen32, Condition::Xlen64

Instance Method Summary collapse

Methods inherited from Condition

#&, #-@, conjunction, disjunction, #empty?, #expand_term_requirements, #expand_to_enforce_single_ext_ver, #failing_conjuncts, #has_extension_requirement?, #has_param?, #implied_extension_conflicts, #implied_extension_requirements, join, #make_cb_proc, #minimize, not, one_of, #partial_eval, #partially_evaluate_for_params, #sat_arch_model, #satisfiability_depends_on_ext_req?, #satisfiable?, #satisfiable_by_arch?, #satisfiable_by_cfg_arch?, #satisfied_by_cfg_arch?, #satisfied_by_ext_req?, solver, #solver, solver_for_arch, solver_for_cfg_arch, #to_asciidoc, #to_expanded_logic_tree_shallow, #to_logic_tree, #to_s, #to_s_pretty, #to_s_with_value, #unsat_arch_core, #unsatisfiable?, #unsatisfiable_by_arch?, #unsatisfiable_by_cfg_arch?, #z3_assertions, #|

Methods inherited from AbstractCondition

#&, #-@, #always_implies?, #compatible?, #could_be_satisfied_by_cfg_arch?, #covered_by?, #empty?, #equivalent?, #ext_req_terms, #failing_conjuncts, #has_extension_requirement?, #has_param?, #implied_extension_conflicts, #implied_extension_requirements, #implies, #mentions?, #mentions_xlen?, #minimize, #param_terms, #partial_eval, #partially_evaluate_for_params, #rv32_only?, #rv64_only?, #satisfiability_depends_on_ext_req?, #satisfiable?, #satisfiable_by_arch?, #satisfiable_by_cfg_arch?, #satisfied_by_cfg_arch?, #satisfied_by_ext_req?, #to_asciidoc, #to_logic_tree, #to_s, #to_s_pretty, #to_s_with_value, #to_yaml, #unsatisfiable?, #unsatisfiable_by_arch?, #unsatisfiable_by_cfg_arch?, #|

Constructor Details

#initialize(xlen) ⇒ XlenCondition

Returns a new instance of XlenCondition.



2041
2042
2043
2044
# File 'lib/udb/condition.rb', line 2041

def initialize(xlen)
  @xlen = xlen
  @satisfied_by_cfg_arch_memo = T.let({}, T::Hash[ConfiguredArchitecture, SatisfiedResult])
end

Instance Method Details

#to_hObject



2058
# File 'lib/udb/condition.rb', line 2058

def to_h = { "xlen" => @xlen }

#to_idl(cfg_arch) ⇒ Object



2061
# File 'lib/udb/condition.rb', line 2061

def to_idl(cfg_arch) = "xlen() == #{@xlen}"

#to_logic_tree_internalObject



2047
2048
2049
2050
2051
2052
2053
2054
2055
# File 'lib/udb/condition.rb', line 2047

def to_logic_tree_internal
  if @xlen == 32
    LogicNode::Xlen32
  elsif @xlen == 64
    LogicNode::Xlen64
  else
    raise "unexpected"
  end
end