diff options
author | Greg Still <stillgs@us.ibm.com> | 2015-11-24 19:21:05 -0600 |
---|---|---|
committer | Gregory S. Still <stillgs@us.ibm.com> | 2016-01-25 08:41:27 -0600 |
commit | 1e33470b9f718cd95f4810ee1798f39c5425e47d (patch) | |
tree | 9305d366693c88d0e78a600d2cb19e8f23b4fe0d /hwpf/include/plat/target.H | |
parent | 40a4fdbc442230634723bf528085be8d984bedea (diff) | |
download | talos-sbe-1e33470b9f718cd95f4810ee1798f39c5425e47d.tar.gz talos-sbe-1e33470b9f718cd95f4810ee1798f39c5425e47d.zip |
Update PPE target to uint32_t and include MI target
- Reduces the vector storage needs to allow additional targets
in the future
- Added a valid bit to the target as the old means of checking for an
already formed target (when uint64_t was used) no longer works.
- Add MI target type support for compilation. No MI target addressing
support is present at this time as this is a Cummuls only function
Change-Id: I1ed89392cc232f31141febc108e7ba0fb7bf65bd
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/22737
Tested-by: Jenkins Server
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Diffstat (limited to 'hwpf/include/plat/target.H')
-rw-r--r-- | hwpf/include/plat/target.H | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/hwpf/include/plat/target.H b/hwpf/include/plat/target.H index 7fb907ef..79d61f7f 100644 --- a/hwpf/include/plat/target.H +++ b/hwpf/include/plat/target.H @@ -56,7 +56,7 @@ namespace fapi2 Target<K, V>::Target(V Value) { // Already formed target handle? - if(static_cast<union iv_handle>(Value).fields.type != 0) + if(static_cast<union iv_handle>(Value).fields.valid == 1) { this->iv_handle.value = Value; return; @@ -69,51 +69,45 @@ namespace fapi2 this->iv_handle.fields.type = TARGET_TYPE_PROC_CHIP; this->iv_handle.fields.type_target_num = 0; } - - if(K & TARGET_TYPE_PERV) + else if(K & TARGET_TYPE_PERV) { this->iv_handle.fields.chiplet_num = Value + NEST_GROUP1_CHIPLET_OFFSET; this->iv_handle.fields.type = TARGET_TYPE_PERV; this->iv_handle.fields.type_target_num = Value; } - - if(K & TARGET_TYPE_CORE) + else if(K & TARGET_TYPE_CORE) { this->iv_handle.fields.chiplet_num = Value + CORE_CHIPLET_OFFSET; this->iv_handle.fields.type = TARGET_TYPE_CORE | TARGET_TYPE_PERV; this->iv_handle.fields.type_target_num = Value; } - - if(K & TARGET_TYPE_EQ) + else if(K & TARGET_TYPE_EQ) { this->iv_handle.fields.chiplet_num = Value + EQ_CHIPLET_OFFSET; this->iv_handle.fields.type = TARGET_TYPE_EQ | TARGET_TYPE_PERV; this->iv_handle.fields.type_target_num = Value; } - - if(K & TARGET_TYPE_EX) + else if(K & TARGET_TYPE_EX) { this->iv_handle.fields.chiplet_num = (Value / 2) + EX_CHIPLET_OFFSET; this->iv_handle.fields.type = TARGET_TYPE_EX | TARGET_TYPE_PERV; this->iv_handle.fields.type_target_num = Value; } - - if(K & TARGET_TYPE_MCS) + else if(K & TARGET_TYPE_MCS) { this->iv_handle.fields.chiplet_num = Value + MCS_CHIPLET_OFFSET; this->iv_handle.fields.type = TARGET_TYPE_MCS | TARGET_TYPE_PERV; this->iv_handle.fields.type_target_num = Value; } - - if(K == TARGET_TYPE_ALL) + else if(K == TARGET_TYPE_ALL) { this->iv_handle.fields.chiplet_num = Value; this->iv_handle.fields.type = TARGET_TYPE_ALL; } - this->iv_handle.fields.address_overlay = - (this->iv_handle.fields.chiplet_num << 24); + + this->iv_handle.fields.valid = 1; } |