diff options
Diffstat (limited to 'backend/src/ir/instruction.hpp')
-rw-r--r-- | backend/src/ir/instruction.hpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/backend/src/ir/instruction.hpp b/backend/src/ir/instruction.hpp index 05c3e649..ab8bc1f9 100644 --- a/backend/src/ir/instruction.hpp +++ b/backend/src/ir/instruction.hpp @@ -217,7 +217,8 @@ namespace ir { return T::isClassOf(*this); } /*! max_src used by vme for payload passing and setting */ - static const uint32_t MAX_SRC_NUM = 40; + //static const uint32_t MAX_SRC_NUM = 48; + static const uint32_t MAX_SRC_NUM = 64; static const uint32_t MAX_DST_NUM = 32; DebugInfo DBGInfo; protected: @@ -429,6 +430,16 @@ namespace ir { static bool isClassOf(const Instruction &insn); }; + class ImeInstruction : public Instruction { + public: + uint8_t getImageIndex() const; + uint8_t getMsgType() const; + Type getSrcType(void) const; + Type getDstType(void) const; + /*! Return true if the given instruction is an instance of this class */ + static bool isClassOf(const Instruction &insn); + }; + typedef union _ImageInfoKey{ _ImageInfoKey(uint8_t i, uint8_t t) : index(i), type(t) {}; _ImageInfoKey(int key) : data(key) {}; @@ -880,6 +891,7 @@ namespace ir { Instruction SAMPLE(uint8_t imageIndex, Tuple dst, Tuple src, uint8_t srcNum, bool dstIsFloat, bool srcIsFloat, uint8_t sampler, uint8_t samplerOffset); /*! video motion estimation */ Instruction VME(uint8_t imageIndex, Tuple dst, Tuple src, uint32_t dstNum, uint32_t srcNum, int msg_type, int vme_search_path_lut, int lut_sub); + Instruction IME(uint8_t imageIndex, Tuple dst, Tuple src, uint32_t dstNum, uint32_t srcNum, int msg_type); /*! get image information , such as width/height/depth/... */ Instruction GET_IMAGE_INFO(int infoType, Register dst, uint8_t imageIndex, Register infoReg); /*! label labelIndex */ |