![]() |
P4C
The P4 Compiler
|
Classes | |
struct | Decode |
Public Member Functions | |
ByteRotateMerge (Table *tbl, const Table::Actions::Action *act, const value_t &d, const value_t &s1, const value_t &s2, int s1s, int s2s, int bm) | |
void | dbprint (std::ostream &out) const |
int | encode () |
bool | equiv (Instruction *a_) |
std::string | name () |
Instruction * | pass1 (Table *tbl, Table::Actions::Action *) |
void | pass2 (Table *tbl, Table::Actions::Action *) |
bool | phvRead (std::function< void(const ::Phv::Slice &sl)> fn) |
![]() | |
VLIWInstruction (int l) | |
template<class REGS> | |
void | write_regs_2 (REGS ®s, Table *tbl, Table::Actions::Action *act) |
template<typename REGS> | |
void | write_regs_2 (REGS ®s, Table *tbl, Table::Actions::Action *act) |
![]() | |
Instruction (int l) | |
bool | equiv (const std::unique_ptr< Instruction > &a) |
bool | phvRead () |
virtual bool | phvRead (std::function< void(const Phv::Slice &sl)>)=0 |
virtual bool | salu_alu () const |
virtual bool | salu_output () const |
![]() | |
void | print () const |
Public Attributes | |
bitvec | byte_mask |
Phv::Ref | dest |
Operand | src1 |
int | src1_shift |
Operand | src2 |
int | src2_shift |
![]() | |
int | lineno |
int | slot |
Additional Inherited Members | |
![]() | |
enum | instruction_set_t { VLIW_ALU = 0 , STATEFUL_ALU = 1 , NUM_SETS = 2 } |
![]() | |
static Instruction * | decode (Table *, const Table::Actions::Action *, const VECTOR(value_t) &) |
This instruction represents the Byte-Rotate-Merge instruction described in the uArch section 14.1.6.5 Byte-rotate-merge section.
|
inlinevirtual |
Implements Instruction.
|
virtual |
Implements VLIW::VLIWInstruction.
|
virtual |
Implements Instruction.
|
inlinevirtual |
Implements Instruction.
|
virtual |
The shifts at most can be container.size / 8 and the byte mask bit count can be at most container.size / 8.
Implements Instruction.
|
inlinevirtual |
Implements Instruction.