Fennel: FunctorExtendedInstructionDef< T > Class Template Reference (original) (raw)

Definition of an extended instruction based upon a functor. More...

#include <[ExtendedInstruction.h](ExtendedInstruction%5F8h-source.html)>

Inheritance diagram for FunctorExtendedInstructionDef< T >:

List of all members.

Public Member Functions
ExtendedInstruction * createInstruction (vector< RegisterReference * > const &regs)
Creates an instruction of this type which references a particular set of registers.
string getName ()
Returns the name of this instruction.
const vector< StandardTypeDescriptorOrdinal > & getParameterTypes ()
Returns the parameter types of this instruction.
string getSignature () const
Returns the signature of this instruction.
Public Attributes
T::Functor _functor
Protected Member Functions
FunctorExtendedInstructionDef (string const &name, vector< StandardTypeDescriptorOrdinal > const &parameterTypes, typename T::Functor functor)
Creates a FunctorExtendedInstructionDef.
Protected Attributes
string _name
vector< StandardTypeDescriptorOrdinal > _parameterTypes
string _signature
Friends
class ExtendedInstructionTable

Detailed Description

template

class FunctorExtendedInstructionDef< T >

Definition of an extended instruction based upon a functor.

Template parameter 'T' must be a type such as ExtendedInstruction2<int,double>. It must have a type T:Functor.

Definition at line 115 of file ExtendedInstruction.h.


Constructor & Destructor Documentation


Member Function Documentation

Creates an instruction of this type which references a particular set of registers.

The registers supplied must be the same number and type as the registers supported by the function.

Implements ExtendedInstructionDef.

Definition at line 138 of file ExtendedInstruction.h.

00140 { 00141 return T::create(*this,regs); 00142 }

| string ExtendedInstructionDef::getName | ( | | ) | [inline, inherited] | | -------------------------------------- | - | | - | --------------------- |

| string ExtendedInstructionDef::getSignature | ( | | ) | const [inline, inherited] | | ------------------------------------------- | - | | - | --------------------------- |

Returns the signature of this instruction.

The signature is always of the form "(,,...)", for example "substr(ptr,ptr,int,intr)". The signature is used to identify instructions in an ExtendedInstructionTable, and in assembly language instructions such as "CALL 'substr(ptr,ptr,int,ptr) &0, &1, &2, &3".

Definition at line 91 of file ExtendedInstruction.h.

Referenced by ExtendedInstructionTable::add(), ExtendedInstruction5Context< T0, T1, T2, T3, T4 >::describe(), ExtendedInstruction5< T0, T1, T2, T3, T4 >::describe(), ExtendedInstruction4Context< T0, T1, T2, T3 >::describe(), ExtendedInstruction4< T0, T1, T2, T3 >::describe(), ExtendedInstruction3Context< T0, T1, T2 >::describe(), ExtendedInstruction3< T0, T1, T2 >::describe(), ExtendedInstruction2Context< T0, T1 >::describe(), ExtendedInstruction2< T0, T1 >::describe(), ExtendedInstruction1Context< T0 >::describe(), and ExtendedInstruction1< T0 >::describe().



Member Data Documentation

Definition at line 135 of file ExtendedInstruction.h.

Referenced by ExtendedInstruction5Context< T0, T1, T2, T3, T4 >::exec(), ExtendedInstruction5< T0, T1, T2, T3, T4 >::exec(), ExtendedInstruction4Context< T0, T1, T2, T3 >::exec(), ExtendedInstruction4< T0, T1, T2, T3 >::exec(), ExtendedInstruction3Context< T0, T1, T2 >::exec(), ExtendedInstruction3< T0, T1, T2 >::exec(), ExtendedInstruction2Context< T0, T1 >::exec(), ExtendedInstruction2< T0, T1 >::exec(), ExtendedInstruction1Context< T0 >::exec(), and ExtendedInstruction1< T0 >::exec().


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


Generated on Mon Jun 22 04:00:32 2009 for Fennel by doxygen 1.5.1