OpenMPTL
C++ Microprocessor Template Library
Classes | Public Types | Static Public Member Functions | List of all members
mptl::reglist< Tp > Class Template Reference

List of regmask<> types. More...

#include <register.hpp>

Inheritance diagram for mptl::reglist< Tp >:

Classes

struct  all_reg_type
 Type trait providing value=true if every reglist<> element (aka: Tp...) is of same reg_type as one of Treg, or if reglist<> contains no elements. More...
 

Public Types

template<typename Treg >
using filter_reg_type = typename type::template filter< mpl::filter_reg_type< Treg > >::type
 Provides a typelist, whose elements are a filtered subset of all reglist<> elements with underlying reg_type = Treg. More...
 
template<typename Treg >
using merged_regmask = typename reglist< unique_merged_list >::template filter_reg_type< Treg >::unique_element::type
 Provides a regmask<> type, merged by all elements in reglist<> of reg_type Treg. More...
 

Static Public Member Functions

static __always_inline void set (void)
 Call ::set() on each distinct merged regmask from reglist. More...
 
static __always_inline void clear (void)
 Call ::clear() on each distinct merged regmask from reglist. More...
 
static __always_inline void reset_to (void)
 Call ::reset_to() on each distinct merged regmask from reglist. More...
 
template<typename... strict_reg_type>
static __always_inline void strict_reset_to (void)
 Call ::reset_to() on each distinct merged regmask from reglist. More...
 

Detailed Description

template<typename... Tp>
class mptl::reglist< Tp >

Expands reglist<> types to its elements.

Member Typedef Documentation

◆ filter_reg_type

template<typename... Tp>
template<typename Treg >
using mptl::reglist< Tp >::filter_reg_type = typename type::template filter< mpl::filter_reg_type< Treg > >::type

◆ merged_regmask

template<typename... Tp>
template<typename Treg >
using mptl::reglist< Tp >::merged_regmask = typename reglist< unique_merged_list >::template filter_reg_type< Treg >::unique_element::type

Member Function Documentation

◆ clear()

template<typename... Tp>
static __always_inline void mptl::reglist< Tp >::clear ( void  )
inlinestatic

◆ reset_to()

template<typename... Tp>
static __always_inline void mptl::reglist< Tp >::reset_to ( void  )
inlinestatic

Refer to the "mpl::functor_reg_reset_to" documentation in register_mpl.hpp for a discussion about reset_to() and set().

◆ set()

template<typename... Tp>
static __always_inline void mptl::reglist< Tp >::set ( void  )
inlinestatic

Refer to the "mpl::functor_reg_set" documentation in register_mpl.hpp for a discussion about reset_to() and set().

◆ strict_reset_to()

template<typename... Tp>
template<typename... strict_reg_type>
static __always_inline void mptl::reglist< Tp >::strict_reset_to ( void  )
inlinestatic

Resets regs from strict_reg_type if no regmask of same reg_type is in reglist.

Asserts all regmasks in reglist to be of reg_type from any reg in strict_reg_type list.


The documentation for this class was generated from the following file: