diff options
author | Pan Xiuli <xiuli.pan@intel.com> | 2015-11-24 15:51:40 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2015-11-24 16:58:48 +0800 |
commit | 6b13eaaa93b3e1089b17e7996624fa3017e8a60e (patch) | |
tree | 813e32f9d2e14b90352913ee7e39d8d4ddbca728 | |
parent | e5aceb38782e076d61cd4fed4f363aace614dc47 (diff) |
Backend: enable to choose notification register
There are 3 notification can be used by wait, so we
should be able to choose which one we'd like to use.
Also the 3 reg is n0.0 n0.1 and n0.2 so also change
the function name.
Signed-off-by: Pan Xiuli <xiuli.pan@intel.com>
Reviewed-by: Yang Rong <rong.r.yang@intel.com>
-rw-r--r-- | backend/src/backend/gen_encoder.cpp | 4 | ||||
-rw-r--r-- | backend/src/backend/gen_encoder.hpp | 2 | ||||
-rw-r--r-- | backend/src/backend/gen_register.hpp | 4 |
3 files changed, 5 insertions, 5 deletions
diff --git a/backend/src/backend/gen_encoder.cpp b/backend/src/backend/gen_encoder.cpp index b153a2cf..1ad4f012 100644 --- a/backend/src/backend/gen_encoder.cpp +++ b/backend/src/backend/gen_encoder.cpp @@ -994,9 +994,9 @@ namespace gbe this->setSrc1(insn, src1); } - void GenEncoder::WAIT(void) { + void GenEncoder::WAIT(uint32_t n) { GenNativeInstruction *insn = this->next(GEN_OPCODE_WAIT); - GenRegister src = GenRegister::notification1(); + GenRegister src = GenRegister::notification0(n); this->setDst(insn, GenRegister::null()); this->setSrc0(insn, src); this->setSrc1(insn, GenRegister::null()); diff --git a/backend/src/backend/gen_encoder.hpp b/backend/src/backend/gen_encoder.hpp index e9945e8b..e4f5ff4a 100644 --- a/backend/src/backend/gen_encoder.hpp +++ b/backend/src/backend/gen_encoder.hpp @@ -162,7 +162,7 @@ namespace gbe /*! No-op */ void NOP(void); /*! Wait instruction (used for the barrier) */ - void WAIT(void); + void WAIT(uint32_t n = 0); /*! Atomic instructions */ virtual void ATOMIC(GenRegister dst, uint32_t function, GenRegister src, GenRegister bti, uint32_t srcNum); /*! Untyped read (upto 4 channels) */ diff --git a/backend/src/backend/gen_register.hpp b/backend/src/backend/gen_register.hpp index 0a077f20..5c813be9 100644 --- a/backend/src/backend/gen_register.hpp +++ b/backend/src/backend/gen_register.hpp @@ -828,10 +828,10 @@ namespace gbe GEN_HORIZONTAL_STRIDE_0); } - static INLINE GenRegister notification1(void) { + static INLINE GenRegister notification0(uint32_t subnr) { return GenRegister(GEN_ARCHITECTURE_REGISTER_FILE, GEN_ARF_NOTIFICATION_COUNT, - 0, + subnr, GEN_TYPE_UD, GEN_VERTICAL_STRIDE_0, GEN_WIDTH_1, |