[Beignet] [PATCH] GBE: Fix bug when unspill a long type value from scratch.
Ruiling Song
ruiling.song at intel.com
Mon Mar 7 07:08:06 UTC 2016
the register maybe a stride two register with type UD.
So, retype it to long when do unspill.
Signed-off-by: Ruiling Song <ruiling.song at intel.com>
---
backend/src/backend/gen_context.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/backend/src/backend/gen_context.cpp b/backend/src/backend/gen_context.cpp
index cdfd98e..5ade261 100644
--- a/backend/src/backend/gen_context.cpp
+++ b/backend/src/backend/gen_context.cpp
@@ -2037,9 +2037,9 @@ namespace gbe
} else {
uint32_t regNum = (regSize/2*simdWidth) > 32 ? 2 : 1;
this->scratchRead(payload, msg, scratchOffset, regNum, GEN_TYPE_UD, GEN_SCRATCH_CHANNEL_MODE_DWORD);
- storeBottomHalf(dst, payload);
+ storeBottomHalf(GenRegister::ul8grf(dst.nr, dst.subnr), payload);
this->scratchRead(payload, msg, scratchOffset + 4*simdWidth, regNum, GEN_TYPE_UD, GEN_SCRATCH_CHANNEL_MODE_DWORD);
- storeTopHalf(dst, payload);
+ storeTopHalf(GenRegister::ul8grf(dst.nr, dst.subnr), payload);
}
p->pop();
}
--
2.4.1
More information about the Beignet
mailing list