gem5  v19.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Functions
GuestABI Namespace Reference

Classes

struct  Argument
 
struct  Argument< ABI, VarArgs< Types... > >
 
struct  Argument< DefaultSyscallABI, Arg, typename std::enable_if< std::is_integral< Arg >::value >::type >
 
struct  Argument< DefaultSyscallABI, Arg, typename std::enable_if< std::is_pointer< Arg >::value >::type >
 
struct  Argument< PseudoInstABI, uint64_t >
 
struct  Argument< TestABI_1D, Arg, typename std::enable_if< std::is_floating_point< Arg >::value >::type >
 
struct  Argument< TestABI_1D, int >
 
struct  Argument< TestABI_2D, Arg, typename std::enable_if< std::is_floating_point< Arg >::value >::type >
 
struct  Argument< TestABI_2D, int >
 
struct  Argument< TestABI_RetReg, Arg >
 
struct  Argument< TestABI_TcInit, int >
 
struct  Argument< X86PseudoInstABI, uint64_t >
 
struct  IsVarArgs
 
struct  IsVarArgs< VarArgs< Types... > >
 
struct  PositionInitializer
 
struct  PositionInitializer< ABI, typename std::enable_if< std::is_constructible< typename ABI::Position, const ThreadContext * >::value >::type >
 
struct  Result
 
struct  Result< ABI, void >
 
struct  Result< DefaultSyscallABI, SyscallReturn >
 
struct  Result< PseudoInstABI, T >
 
struct  Result< TestABI_1D, int >
 
struct  Result< TestABI_1D, Ret, typename std::enable_if< std::is_floating_point< Ret >::value >::type >
 
struct  Result< TestABI_2D, int >
 
struct  Result< TestABI_2D, Ret, typename std::enable_if< std::is_floating_point< Ret >::value >::type >
 
struct  Result< TestABI_RetReg, Ret >
 
struct  Result< X86PseudoInstABI, T >
 
struct  ResultAllocator
 
struct  ResultAllocator< ABI, Ret, decltype((void)&Result< ABI, Ret >::allocate)>
 
class  VarArgs
 
class  VarArgsBase
 
class  VarArgsBase< First, Types... >
 
class  VarArgsBase<>
 
class  VarArgsImpl
 
class  VarArgsImpl< ABI, Base >
 
class  VarArgsImpl< ABI, Base, First, Types... >
 

Functions

template<typename ... Types>
std::ostream & operator<< (std::ostream &os, const VarArgs< Types... > &va)
 
template<typename ABI , typename Ret >
static std::enable_if<!std::is_void< Ret >::value, Ret >::type callFrom (ThreadContext *tc, typename ABI::Position &position, std::function< Ret(ThreadContext *)> target)
 
template<typename ABI >
static void callFrom (ThreadContext *tc, typename ABI::Position &position, std::function< void(ThreadContext *)> target)
 
template<typename ABI , typename Ret , typename NextArg , typename ... Args>
static std::enable_if<!std::is_void< Ret >::value, Ret >::type callFrom (ThreadContext *tc, typename ABI::Position &position, std::function< Ret(ThreadContext *, NextArg, Args...)> target)
 
template<typename ABI , typename NextArg , typename ... Args>
static void callFrom (ThreadContext *tc, typename ABI::Position &position, std::function< void(ThreadContext *, NextArg, Args...)> target)
 
template<typename ABI , typename Ret >
static void dumpArgsFrom (int count, std::ostream &os, ThreadContext *tc, typename ABI::Position &position)
 
template<typename ABI , typename Ret , typename NextArg , typename ... Args>
static void dumpArgsFrom (int count, std::ostream &os, ThreadContext *tc, typename ABI::Position &position)
 

Function Documentation

◆ callFrom() [1/4]

template<typename ABI , typename Ret >
static std::enable_if<!std::is_void<Ret>::value, Ret>::type GuestABI::callFrom ( ThreadContext tc,
typename ABI::Position &  position,
std::function< Ret(ThreadContext *)>  target 
)
static

Definition at line 332 of file guest_abi.hh.

References GuestABI::Result< ABI, Ret, Enabled >::store().

Referenced by callFrom(), and invokeSimcall().

◆ callFrom() [2/4]

template<typename ABI >
static void GuestABI::callFrom ( ThreadContext tc,
typename ABI::Position &  position,
std::function< void(ThreadContext *)>  target 
)
static

Definition at line 343 of file guest_abi.hh.

References type.

◆ callFrom() [3/4]

template<typename ABI , typename Ret , typename NextArg , typename ... Args>
static std::enable_if<!std::is_void<Ret>::value, Ret>::type GuestABI::callFrom ( ThreadContext tc,
typename ABI::Position &  position,
std::function< Ret(ThreadContext *, NextArg, Args...)>  target 
)
static

Definition at line 353 of file guest_abi.hh.

References callFrom(), and GuestABI::Argument< ABI, Arg, Enabled >::get().

◆ callFrom() [4/4]

template<typename ABI , typename NextArg , typename ... Args>
static void GuestABI::callFrom ( ThreadContext tc,
typename ABI::Position &  position,
std::function< void(ThreadContext *, NextArg, Args...)>  target 
)
static

Definition at line 373 of file guest_abi.hh.

References callFrom(), and GuestABI::Argument< ABI, Arg, Enabled >::get().

◆ dumpArgsFrom() [1/2]

template<typename ABI , typename Ret >
static void GuestABI::dumpArgsFrom ( int  count,
std::ostream &  os,
ThreadContext tc,
typename ABI::Position &  position 
)
static

Definition at line 399 of file guest_abi.hh.

Referenced by dumpArgsFrom(), and dumpSimcall().

◆ dumpArgsFrom() [2/2]

template<typename ABI , typename Ret , typename NextArg , typename ... Args>
static void GuestABI::dumpArgsFrom ( int  count,
std::ostream &  os,
ThreadContext tc,
typename ABI::Position &  position 
)
static

◆ operator<<()

template<typename ... Types>
std::ostream& GuestABI::operator<< ( std::ostream &  os,
const VarArgs< Types... > &  va 
)

Definition at line 295 of file guest_abi.hh.

References X86ISA::os.


Generated on Fri Feb 28 2020 16:27:21 for gem5 by doxygen 1.8.13