diff options
author | Yang Rong <rong.r.yang@intel.com> | 2016-09-18 10:49:48 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2016-10-21 12:46:14 +0800 |
commit | 9e249815da04a7086ecd4e7573d3795d570fef2e (patch) | |
tree | ee122488d26e2d5393a24d58f9c5116a8568a8ad | |
parent | e70b6c669781a22ae480750147b4960ff9891b52 (diff) | |
download | beignet-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.hpp | 5 |
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; } |