diff options
author | Wael El-Essawy <welessa@us.ibm.com> | 2015-10-06 09:17:06 -0500 |
---|---|---|
committer | Fadi Kassem <fmkassem@us.ibm.com> | 2015-10-06 16:20:09 -0500 |
commit | 64ba6727bc31917105528e60950b0b2d2745a15e (patch) | |
tree | 61dc3c70f60e48809c33c8858f01dec5a0b52e81 /src/occ_405/state.c | |
parent | 774c825185dbca3c11c3ca946f4b07b72ee0c4d5 (diff) | |
download | talos-occ-64ba6727bc31917105528e60950b0b2d2745a15e.tar.gz talos-occ-64ba6727bc31917105528e60950b0b2d2745a15e.zip |
fix getscom_abs and _getscom code
Instead of reading the scom registers, and storing the results
to a memory address specified by o_data, the two routines were
loading data into a vector register, without storing it to the
o_data pointer, basically losing it.
There is no memory to memory PPC instruction, so the minimum number
of instructions to execute the code is two: a vector load and a vector store.
- Had to modify the ppe42_scom.h to make the _m_data parameter to the
PPE_LVD and PPE_LVDX macros an output only. Otherwise, the compiler
initializes the temp variable, adding two (useless) instructions.
- make the PPE_LVDX macro have the same flavor as PPE_LVD by eliminating
the pointer to m_data from both the _getscom function side and the
macro implementation side.
This fix is already merged in the hw/ppe repository.
Change-Id: I6390d2c5e2fbcecf440080917611a82ae88d313b
RTC: 135989
RTC: 137704
RTC: 136459
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/20976
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Tested-by: William A. Bryan <wilbryan@us.ibm.com>
Reviewed-by: Fadi Kassem <fmkassem@us.ibm.com>
Diffstat (limited to 'src/occ_405/state.c')
0 files changed, 0 insertions, 0 deletions