summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Rong <rong.r.yang@intel.com>2016-09-18 10:49:48 +0800
committerYang Rong <rong.r.yang@intel.com>2016-10-21 12:46:14 +0800
commit9e249815da04a7086ecd4e7573d3795d570fef2e (patch)
treeee122488d26e2d5393a24d58f9c5116a8568a8ad
parente70b6c669781a22ae480750147b4960ff9891b52 (diff)
downloadbeignet-9e249815da04a7086ecd4e7573d3795d570fef2e.tar.gz
GBE: fix half immediate negate assert.
Also add double immediate negate support. Signed-off-by: Yang Rong <rong.r.yang@intel.com> Reviewed-by: Pan Xiuli <xiuli.pan@intel.com>
-rw-r--r--backend/src/backend/gen_register.hpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/backend/src/backend/gen_register.hpp b/backend/src/backend/gen_register.hpp
index bbea7616..a8eb2e45 100644
--- a/backend/src/backend/gen_register.hpp
+++ b/backend/src/backend/gen_register.hpp
@@ -1267,6 +1267,11 @@ namespace gbe
} else if (reg.type == GEN_TYPE_W) {
const uint16_t uw = reg.value.ud & 0xffff;
reg = GenRegister::immw(-(int16_t)uw);
+ } else if (reg.type == GEN_TYPE_HF_IMM) {
+ const uint16_t uw = reg.value.ud & 0xffff;
+ reg = GenRegister::immh(uw ^ 0x8000);
+ } else if (reg.type == GEN_TYPE_DF_IMM) {
+ reg.value.df = -reg.value.df;
} else
NOT_SUPPORTED;
}