bool holds() { Type a = this->template getInputValue<operand_a>(); Type b = this->template getInputValue<operand_b>(); typename Type::atomized_type a_atomic; typename Type::atomized_type b_atomic; Interval::atomize(a_atomic, a); Interval::atomize(b_atomic, b); bool lhs = is_contained_in(a, b); bool rhs = a_atomic.contained_in(b_atomic); this->template setOutputValue<lhs_result>(lhs); this->template setOutputValue<rhs_result>(rhs); return lhs == rhs; }
ExtendedPC ExtendedPC::adjust(address begin, address end, address new_begin) { assert(is_contained_in(begin, end), "must be contained"); address new_pc = new_begin + (_pc - begin); return ExtendedPC(new_pc); }