compute-runtime/shared/source
Sebastian Sanchez 1187eb0375 Fix encodeMulRegVal() calculation
encodeMulRegVal() makes extensive use of encodeAluAdd().

The following problems are addressed:

* encodeAluAdd() performs an addition and saves the
  calculated result to the first register. Saving the
  result to the first register clears the calculated result.

* An array of MI_MATH buffers is setup prior to performing a
  series of encodeAluAdd()'s where the same registers are
  reused for the calculations. For calculated results to be
  carried over from one encodeAluAdd() operation to subsequent
  encodeAluAdd() operations, the MI_MATH buffer needs to be
  setup per encodeAluAdd().

Create EncodeMath<Family>::addition() to reserve a MI_MATH buffer
and performs the addition by calling encodeAluAdd().
Modify encodeAluAdd() to save calculated result to a third
register. Then, after EncodeMath<Family>::addition() is called
in encodeMulRegVal(), copy the calculated result from the result
register to the first register from the EncodeMath<Family>::addition()
operation. This will allow the calculated value to be carried over
to subsequent addition operations.

Change-Id: I9c6f8362a1ca2f7e3361aaa48d8748dd6ff0f4c8
Signed-off-by: Sebastian Sanchez <sebastian.sanchez@intel.com>
2020-02-25 14:13:35 -08:00
..
built_ins Move built ins to share directory 2020-02-24 15:46:44 +01:00
command_container Fix encodeMulRegVal() calculation 2020-02-25 14:13:35 -08:00
command_stream Move built ins to share directory 2020-02-24 15:46:44 +01:00
commands Reorganization directory structure [3/n] 2020-02-23 23:48:28 +01:00
compiler_interface Move built ins to share directory 2020-02-24 15:46:44 +01:00
debug_settings Improve CPU copy debug flags. 2020-02-25 16:57:35 +01:00
debugger Reorganization directory structure [3/n] 2020-02-23 23:48:28 +01:00
device Add selector for copy engines 2020-02-25 14:10:25 +01:00
device_binary_format Introducing kernel descriptor 2020-02-25 00:03:15 +01:00
direct_submission Add absolute include paths 2020-02-23 23:49:12 +01:00
dll Move options_dll file to shared directory 2020-02-25 11:47:26 +01:00
execution_environment Access GmmHelper and GmmClientContext via RootDeviceEnvironment 2020-02-25 12:32:16 +01:00
gen8 Fix encodeMulRegVal() calculation 2020-02-25 14:13:35 -08:00
gen9 Fix encodeMulRegVal() calculation 2020-02-25 14:13:35 -08:00
gen11 Fix encodeMulRegVal() calculation 2020-02-25 14:13:35 -08:00
gen12lp Fix encodeMulRegVal() calculation 2020-02-25 14:13:35 -08:00
generated Reorganization directory structure [3/n] 2020-02-23 23:48:28 +01:00
gmm_helper Add absolute include paths 2020-02-23 23:49:12 +01:00
helpers Pass RootDeviceEnvironment to setRenderSurfaceStateForBuffer method 2020-02-25 15:50:18 +01:00
image Add absolute include paths 2020-02-23 23:49:12 +01:00
indirect_heap Add absolute include paths 2020-02-23 23:49:12 +01:00
kernel Introducing kernel descriptor 2020-02-25 00:03:15 +01:00
memory_manager Access GmmHelper and GmmClientContext via RootDeviceEnvironment 2020-02-25 12:32:16 +01:00
memory_properties Add absolute include paths 2020-02-23 23:49:12 +01:00
os_interface Access GmmHelper and GmmClientContext via RootDeviceEnvironment 2020-02-25 12:32:16 +01:00
page_fault_manager Add absolute include paths 2020-02-23 23:49:12 +01:00
program Clang-format: restore sorting includes 2020-02-24 10:22:30 +01:00
sku_info Add absolute include paths 2020-02-23 23:49:12 +01:00
unified_memory Add absolute include paths 2020-02-23 23:49:12 +01:00
unit_tests Reorganization directory structure [4/n] 2020-02-24 01:04:42 +01:00
utilities Introducing kernel descriptor 2020-02-25 00:03:15 +01:00
CMakeLists.txt Move built ins to share directory 2020-02-24 15:46:44 +01:00
enable_gens.cmake Reorganization directory structure [3/n] 2020-02-23 23:48:28 +01:00