VideoFrameBuffer: Make non-const data access explicit

VideoFrameBuffer currently has two overloaded data() functions for pixel access, one for const and one for non-const. Unfortunately, it will default to the non-const version, even when 'const scoped_refptr<VideoFrameBuffer>&' is used. This is a problem, because many subclasses use RTC_NOTREACHED() in the non-const version.

This CL makes the non-const version of data() explicit with a different, longer function name MutableData().

R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1304143003 .

Cr-Original-Commit-Position: 972c6d2dc6dd5efdad1377c0d224e03eb8f276f7@{#9787}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 3318f984cd7f51d24da4726665c05f5f06f82e6d

--- media/webrtc/webrtcvideoframe.cc
+++ media/webrtc/webrtcvideoframe.cc
@@ -117,33 +117,30 @@
 }

 const uint8* WebRtcVideoFrame::GetYPlane() const {
-  // Const cast to call the correct const-version of data.
-  const webrtc::VideoFrameBuffer* const_ptr = video_frame_buffer_.get();
-  return const_ptr ? const_ptr->data(kYPlane) : nullptr;
+  return video_frame_buffer_ ? video_frame_buffer_->data(kYPlane) : nullptr;
 }

 const uint8* WebRtcVideoFrame::GetUPlane() const {
-  // Const cast to call the correct const-version of data.
-  const webrtc::VideoFrameBuffer* const_ptr = video_frame_buffer_.get();
-  return const_ptr ? const_ptr->data(kUPlane) : nullptr;
+  return video_frame_buffer_ ? video_frame_buffer_->data(kUPlane) : nullptr;
 }

 const uint8* WebRtcVideoFrame::GetVPlane() const {
-  // Const cast to call the correct const-version of data.
-  const webrtc::VideoFrameBuffer* const_ptr = video_frame_buffer_.get();
-  return const_ptr ? const_ptr->data(kVPlane) : nullptr;
+  return video_frame_buffer_ ? video_frame_buffer_->data(kVPlane) : nullptr;
 }

 uint8* WebRtcVideoFrame::GetYPlane() {
-  return video_frame_buffer_ ? video_frame_buffer_->data(kYPlane) : nullptr;
+  return video_frame_buffer_ ? video_frame_buffer_->MutableData(kYPlane)
+                             : nullptr;
 }

 uint8* WebRtcVideoFrame::GetUPlane() {
-  return video_frame_buffer_ ? video_frame_buffer_->data(kUPlane) : nullptr;
+  return video_frame_buffer_ ? video_frame_buffer_->MutableData(kUPlane)
+                             : nullptr;
 }

 uint8* WebRtcVideoFrame::GetVPlane() {
-  return video_frame_buffer_ ? video_frame_buffer_->data(kVPlane) : nullptr;
+  return video_frame_buffer_ ? video_frame_buffer_->MutableData(kVPlane)
+                             : nullptr;
 }

 int32 WebRtcVideoFrame::GetYPitch() const {
@@ -192,9 +189,10 @@
           video_frame_buffer_->stride(kUPlane),
           video_frame_buffer_->stride(kVPlane));

-  if (!CopyToPlanes(new_buffer->data(kYPlane), new_buffer->data(kUPlane),
-                    new_buffer->data(kVPlane), new_buffer->stride(kYPlane),
-                    new_buffer->stride(kUPlane), new_buffer->stride(kVPlane))) {
+  if (!CopyToPlanes(
+          new_buffer->MutableData(kYPlane), new_buffer->MutableData(kUPlane),
+          new_buffer->MutableData(kVPlane), new_buffer->stride(kYPlane),
+          new_buffer->stride(kUPlane), new_buffer->stride(kVPlane))) {
     return false;
   }


Added condition to policy table parse function for update received from sdl server

--- src/components/policy/src/policy/src/policy_manager_impl.cc
+++ src/components/policy/src/policy/src/policy_manager_impl.cc
@@ -75,7 +75,15 @@
   Json::Value value;
   Json::Reader reader;
   if (reader.parse(json.c_str(), value)) {
-    return new policy_table::Table(&value);
+    //For PT Update received from SDL Server.
+    if(value["data"].size()!=0){
+    Json::Value data = value["data"];
+    //First Element in
+    return new policy_table::Table(&data[0]);
+    }
+    else {
+      return new policy_table::Table(&value);
+    }
   } else {
     return utils::SharedPtr<policy_table::Table>();
   }


Fixed issue with destruction of ShaderResourceBindingBase

--- Graphics/GraphicsEngine/include/ShaderResourceBindingBase.hpp
+++ Graphics/GraphicsEngine/include/ShaderResourceBindingBase.hpp
@@ -75,68 +75,66 @@
         m_pPRS{pPRS},
         m_ShaderResourceCache{ResourceCacheContentType::SRB}
     {
-        m_ActiveShaderStageIndex.fill(-1);
-
-        const auto NumShaders   = GetNumShaders();
-        const auto PipelineType = GetPipelineType();
-        for (Uint32 s = 0; s < NumShaders; ++s)
-        {
-            const auto ShaderType = pPRS->GetActiveShaderStageType(s);
-            const auto ShaderInd  = GetShaderTypePipelineIndex(ShaderType, PipelineType);
-
-            m_ActiveShaderStageIndex[ShaderInd] = static_cast<Int8>(s);
-        }
-
-
-        FixedLinearAllocator MemPool{GetRawAllocator()};
-        MemPool.AddSpace<ShaderVariableManagerImplType>(NumShaders);
-        MemPool.Reserve();
-        static_assert(std::is_nothrow_constructible<ShaderVariableManagerImplType, decltype(*this), ShaderResourceCacheImplType&>::value,
-                      "Constructor of ShaderVariableManagerImplType must be noexcept, so we can safely construct all managers");
-        m_pShaderVarMgrs = MemPool.ConstructArray<ShaderVariableManagerImplType>(NumShaders, std::ref(*this), std::ref(m_ShaderResourceCache));
-
-        // The memory is now owned by ShaderResourceBindingBase and will be freed by destructor.
-        auto* Ptr = MemPool.ReleaseOwnership();
-        VERIFY_EXPR(Ptr == m_pShaderVarMgrs);
-        (void)Ptr;
-
-        // It is important to construct all objects before initializing them because if an exception is thrown,
-        // destructors will be called for all objects
-
-        pPRS->InitSRBResourceCache(m_ShaderResourceCache);
-
-        auto& SRBMemAllocator = pPRS->GetSRBMemoryAllocator();
-        for (Uint32 s = 0; s < NumShaders; ++s)
-        {
-            const auto ShaderType = pPRS->GetActiveShaderStageType(s);
-            const auto ShaderInd  = GetShaderTypePipelineIndex(ShaderType, pPRS->GetPipelineType());
-            const auto MgrInd     = m_ActiveShaderStageIndex[ShaderInd];
-            VERIFY_EXPR(MgrInd >= 0 && MgrInd < static_cast<int>(NumShaders));
-
-            auto& VarDataAllocator = SRBMemAllocator.GetShaderVariableDataAllocator(s);
-
-            // Initialize vars manager to reference mutable and dynamic variables
-            // Note that the cache has space for all variable types
-            const SHADER_RESOURCE_VARIABLE_TYPE VarTypes[] = {SHADER_RESOURCE_VARIABLE_TYPE_MUTABLE, SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC};
-            m_pShaderVarMgrs[MgrInd].Initialize(*pPRS, VarDataAllocator, VarTypes, _countof(VarTypes), ShaderType);
+        try
+        {
+            m_ActiveShaderStageIndex.fill(-1);
+
+            const auto NumShaders   = GetNumShaders();
+            const auto PipelineType = GetPipelineType();
+            for (Uint32 s = 0; s < NumShaders; ++s)
+            {
+                const auto ShaderType = pPRS->GetActiveShaderStageType(s);
+                const auto ShaderInd  = GetShaderTypePipelineIndex(ShaderType, PipelineType);
+
+                m_ActiveShaderStageIndex[ShaderInd] = static_cast<Int8>(s);
+            }
+
+
+            FixedLinearAllocator MemPool{GetRawAllocator()};
+            MemPool.AddSpace<ShaderVariableManagerImplType>(NumShaders);
+            MemPool.Reserve();
+            static_assert(std::is_nothrow_constructible<ShaderVariableManagerImplType, decltype(*this), ShaderResourceCacheImplType&>::value,
+                          "Constructor of ShaderVariableManagerImplType must be noexcept, so we can safely construct all managers");
+            m_pShaderVarMgrs = MemPool.ConstructArray<ShaderVariableManagerImplType>(NumShaders, std::ref(*this), std::ref(m_ShaderResourceCache));
+
+            // The memory is now owned by ShaderResourceBindingBase and will be freed by Destruct().
+            auto* Ptr = MemPool.ReleaseOwnership();
+            VERIFY_EXPR(Ptr == m_pShaderVarMgrs);
+            (void)Ptr;
+
+            // It is important to construct all objects before initializing them because if an exception is thrown,
+            // Destruct() will call destructors for all non-null objects.
+
+            pPRS->InitSRBResourceCache(m_ShaderResourceCache);
+
+            auto& SRBMemAllocator = pPRS->GetSRBMemoryAllocator();
+            for (Uint32 s = 0; s < NumShaders; ++s)
+            {
+                const auto ShaderType = pPRS->GetActiveShaderStageType(s);
+                const auto ShaderInd  = GetShaderTypePipelineIndex(ShaderType, pPRS->GetPipelineType());
+                const auto MgrInd     = m_ActiveShaderStageIndex[ShaderInd];
+                VERIFY_EXPR(MgrInd >= 0 && MgrInd < static_cast<int>(NumShaders));
+
+                auto& VarDataAllocator = SRBMemAllocator.GetShaderVariableDataAllocator(s);
+
+                // Initialize vars manager to reference mutable and dynamic variables
+                // Note that the cache has space for all variable types
+                const SHADER_RESOURCE_VARIABLE_TYPE VarTypes[] = {SHADER_RESOURCE_VARIABLE_TYPE_MUTABLE, SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC};
+                m_pShaderVarMgrs[MgrInd].Initialize(*pPRS, VarDataAllocator, VarTypes, _countof(VarTypes), ShaderType);
+            }
+        }
+        catch (...)
+        {
+            // We must release objects manually as destructor will not be called.
+            Destruct();
+            throw;
         }
     }

     ~ShaderResourceBindingBase()
     {
-        if (m_pShaderVarMgrs != nullptr)
-        {
-            auto& SRBMemAllocator = GetSignature()->GetSRBMemoryAllocator();
-            for (Uint32 s = 0; s < GetNumShaders(); ++s)
-            {
-                auto& VarDataAllocator = SRBMemAllocator.GetShaderVariableDataAllocator(s);
-                m_pShaderVarMgrs[s].Destroy(VarDataAllocator);
-                m_pShaderVarMgrs[s].~ShaderVariableManagerImplType();
-            }
-            GetRawAllocator().Free(m_pShaderVarMgrs);
-        }
-    }
-
+        Destruct();
+    }

     IMPLEMENT_QUERY_INTERFACE_IN_PLACE(IID_ShaderResourceBinding, TObjectBase)

@@ -261,6 +259,22 @@
     ShaderResourceCacheImplType&       GetResourceCache() { return m_ShaderResourceCache; }
     const ShaderResourceCacheImplType& GetResourceCache() const { return m_ShaderResourceCache; }

+private:
+    void Destruct()
+    {
+        if (m_pShaderVarMgrs != nullptr)
+        {
+            auto& SRBMemAllocator = GetSignature()->GetSRBMemoryAllocator();
+            for (Uint32 s = 0; s < GetNumShaders(); ++s)
+            {
+                auto& VarDataAllocator = SRBMemAllocator.GetShaderVariableDataAllocator(s);
+                m_pShaderVarMgrs[s].Destroy(VarDataAllocator);
+                m_pShaderVarMgrs[s].~ShaderVariableManagerImplType();
+            }
+            GetRawAllocator().Free(m_pShaderVarMgrs);
+        }
+    }
+
 protected:
     /// Strong reference to pipeline resource signature. We must use strong reference, because
     /// shader resource binding uses pipeline resource signature's memory allocator to allocate


Using CSIDL_PERSONAL instead of CSIDL_MYDOCUMENTS, because Vista doesn't seem to like the latter.

git-svn-id: 65dd0ccd495961f396d5302e5521154b071f0302@127 5b2332b8-efa3-11de-8684-7d64432d61a3

--- Foundation/PlatformWin.cpp
+++ Foundation/PlatformWin.cpp
@@ -42,7 +42,7 @@
     {
         LPITEMIDLIST pidl;

-        if (SHGetFolderLocation(NULL, CSIDL_MYDOCUMENTS | CSIDL_FLAG_CREATE, NULL, 0, &pidl) == S_OK)
+        if (SHGetFolderLocation(NULL, CSIDL_PERSONAL | CSIDL_FLAG_CREATE, NULL, 0, &pidl) == S_OK)
         {
             char cpath[MAX_PATH];
             SHGetPathFromIDListA( pidl, cpath );
@@ -58,7 +58,8 @@
     {
         LPITEMIDLIST pidl;

-        if (SHGetFolderLocation(NULL, CSIDL_MYDOCUMENTS | CSIDL_FLAG_CREATE, NULL, 0, &pidl) == S_OK)
+        int res = SHGetFolderLocation(NULL, CSIDL_PERSONAL | CSIDL_FLAG_CREATE, NULL, 0, &pidl);
+        if (res == S_OK)
         {
             wchar_t cpath[MAX_PATH];
             SHGetPathFromIDListW( pidl, cpath );
@@ -66,7 +67,10 @@

             return std::wstring(cpath) + L"\\" + Core::ToWString(framework_->GetDefaultConfig().GetString(Framework::ConfigurationGroup(), "application_name"));
         }
+        if (res == E_INVALIDARG)
         throw Core::Exception("Failed to access user documents directory.");
+        else
+           throw Core::Exception("Failed to access user documents directory.");
     }
 }


BUG:10899:  Addressed memory leak when a manually instantiated Nifti filter was used multiple times.

--- Code/IO/itkNiftiImageIO.cxx
+++ Code/IO/itkNiftiImageIO.cxx
@@ -456,7 +456,11 @@
     // sizes = x y z t vecsize
     _size[4] = numComponents;
     }
-
+  // Free memory if any was occupied already (incase of re-using the IO filter).
+  if (this->m_NiftiImage != NULL)
+    {
+      nifti_image_free(this->m_NiftiImage);
+    }
   //
   // allocate nifti image...
   this->m_NiftiImage = nifti_image_read(this->GetFileName(),false);


Set recommended statistics DataReaderQos to PREALLOCATED_WITH_REALLOC (#2551)

Signed-off-by: Eduardo Ponz <cd06c2e9cb9b657226976502a1edebf7710250ce@eprosima.com>

--- src/cpp/statistics/fastdds/subscriber/qos/DataReaderQos.cpp
+++ src/cpp/statistics/fastdds/subscriber/qos/DataReaderQos.cpp
@@ -19,6 +19,7 @@
 #include <fastdds/statistics/dds/subscriber/qos/DataReaderQos.hpp>

 #include <fastdds/dds/core/policy/QosPolicies.hpp>
+#include <fastdds/rtps/resources/ResourceManagement.h>

 namespace eprosima {
 namespace fastdds {
@@ -27,11 +28,14 @@

 DataReaderQos::DataReaderQos()
 {
-    // Specific implementation for recommended statistics DataReaderQos
+    /* Specific implementation for recommended statistics DataReaderQos */
     reliability().kind = eprosima::fastdds::dds::RELIABLE_RELIABILITY_QOS;
     durability().kind = eprosima::fastdds::dds::TRANSIENT_LOCAL_DURABILITY_QOS;
     history().kind = eprosima::fastdds::dds::KEEP_LAST_HISTORY_QOS;
     history().depth = 100;
+    // Setting history memory policy to PREALLOCATED_WITH_REALLOC_MEMORY_MODE allows for future type
+    // extension with backwards compatibility
+    endpoint().history_memory_policy = eprosima::fastrtps::rtps::PREALLOCATED_WITH_REALLOC_MEMORY_MODE;
 }

 } // dds


provide the points, their clearance/offset and a valid start location to TrackChain->Init

--- src/demos/trackedVehicle/subsys/trackSystem/TrackSystem.cpp
+++ src/demos/trackedVehicle/subsys/trackSystem/TrackSystem.cpp
@@ -152,23 +152,54 @@
 void TrackSystem::Initialize(ChSharedPtr<ChBodyAuxRef> chassis,
 			 const ChVector<>&  location)
 {
+  // to create the track chain, need a list of control points and their clearance.
+  // Points are centerof spheres with radius = clearance. Use a starting point on
+  // the line, and the chain will be "wrapped" around the x-direction initially.
+  // NOTE: MUST add the idler and sprocket as the first and last entries in the two lists,
+  // ensures a list that is in an order than can be traversed successfully
+  // by the TrackChain->Initilize() func.
+  std::vector<ChVector<>> control_points;
+  std::vector<double> clearance;
+
   // initialize 1 of each of the following subsystems:
   m_driveGear->Initialize(chassis, m_gearPos, QUNIT);
   m_idler->Initialize(chassis, m_idlerPos, QUNIT);
-
+
+  // drive sprocket is First added to the lists passed into TrackChain Init()
+  control_points.push_back(m_driveGear->GetBody()->GetPos() );
+  clearance.push_back(m_driveGear->GetRadius() );
+
   // initialize the road wheels & torsion arm suspension subsystems
   for(int i = 0; i < m_suspensionLocs.size(); i++)
   {
     m_suspensions[i]->Initialize(chassis, m_suspensionLocs[i], QUNIT);
+
+    // add these to the lists passed into the track chain
+    control_points.push_back(m_suspensions[i]->GetWheelBody()->GetPos() );
+    clearance.push_back(m_suspensions[i]->GetWheelRadius() );
   }

   // initialize the support rollers
   for(int j = 0; j < m_rollerLocs.size(); j++)
   {
-    initialize_roller(m_supportRollers[j], chassis,
-      m_rollerLocs[j], QUNIT, j);
-  }
-
+    initialize_roller(m_supportRollers[j], chassis, m_rollerLocs[j], QUNIT, j);
+
+    // add these to the points passed into the track chain
+    control_points.push_back(m_supportRollers[j]->GetPos() );
+    clearance.push_back( m_roller_radius);
+  }
+
+  // last control point: the idler body
+  control_points.push_back(m_idler->GetBody()->GetPos() );
+  clearance.push_back(m_idler->GetRadius() );
+
+  // last, initialize the trackChain.
+  // Starting position will be between idler and gear control points, with a vertical offset
+  // that is the average of the two clearances.
+  ChVector<> start_pos = (control_points[0] + control_points[control_points.size()-1])/2.0;
+  start_pos.y += (clearance[0] + clearance[clearance.size()-1] )/2.0;
+
+  m_chain->Initialize(control_points, clearance, start_pos);
 }


BUG: when VTK_AUTOLOAD_PATH is set to empty it was loading dlls from the root directory

--- Common/vtkObjectFactory.cxx
+++ Common/vtkObjectFactory.cxx
@@ -27,7 +27,7 @@

 #include <ctype.h>

-vtkCxxRevisionMacro(vtkObjectFactory, "1.40");
+vtkCxxRevisionMacro(vtkObjectFactory, "1.41");

 vtkObjectFactoryCollection* vtkObjectFactory::RegisteredFactories = 0;

@@ -120,11 +120,10 @@
 #ifndef _WIN32_WCE
   LoadPath = getenv("VTK_AUTOLOAD_PATH");
 #endif
-  if(LoadPath == 0)
+  if(LoadPath == 0 || strlen(LoadPath) == 0)
     {
     return;
     }
-
   char* CurrentPath = new char[strlen(LoadPath)+1];
   char* SeparatorPosition = LoadPath; // initialize to env variable
   while(SeparatorPosition)


jgr17071200 Removed pdwn settings

jgr17071200 Removed pdwn settings

Change-Id: Ia0527575259e40a532225b4e669b3f4fedcd5662
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43069
Tested-by: Jenkins Server <8e3f934e4c44875bc48d33da3ea13d93ba9a233f@us.ibm.com>
Tested-by: Hostboot CI <52521565bd8ea18a2b112942dce4f4220a97c2c8@us.ibm.com>
Reviewed-by: Christopher W. Steffen <32d1a9ec72cb0b49628aa45b733da26c4736f36b@us.ibm.com>
Reviewed-by: Richard J. Knight <94c04f3910596886be97211d492ad29f0ba29cd5@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <ab93eca12e43608f33daa16a67357cd7b7e867ab@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43072
Reviewed-by: Daniel M. Crowell <912029ca9254ac7b5854e56910561d682e1fa2d0@us.ibm.com>

--- src/import/chips/p9/procedures/hwp/initfiles/p9_obus_scom.C
+++ src/import/chips/p9/procedures/hwp/initfiles/p9_obus_scom.C
@@ -38,7 +38,6 @@
 constexpr uint64_t literal_0b0011 = 0b0011;
 constexpr uint64_t literal_0b00011 = 0b00011;
 constexpr uint64_t literal_0b000000 = 0b000000;
-constexpr uint64_t literal_0b000 = 0b000;
 constexpr uint64_t literal_0b01 = 0b01;
 constexpr uint64_t literal_0b010 = 0b010;
 constexpr uint64_t literal_0b001 = 0b001;
@@ -911,198 +910,6 @@
             FAPI_TRY(fapi2::putScom(TGT0, 0x8000001709010c3full, l_scom_buffer));
         }
         {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080009010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080009010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080109010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080109010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080209010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080209010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080309010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080309010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080409010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080409010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080509010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080509010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080609010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080609010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080709010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080709010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080809010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080809010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080909010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080909010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080a09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080a09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080b09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080b09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080c09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080c09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080d09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080d09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080e09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080e09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000080f09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000080f09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000081009010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000081009010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000081109010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000081109010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000081209010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000081209010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000081309010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000081309010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000081409010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_0_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000081409010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000081509010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_1_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000081509010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000081609010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_2_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000081609010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8000081709010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_3_RX_DAC_REGS_RX_DAC_REGS_RX_LANE_ANA_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8000081709010c3full, l_scom_buffer));
-        }
-        {
             FAPI_TRY(fapi2::getScom( TGT0, 0x8000280009010c3full, l_scom_buffer ));

             l_scom_buffer.insert<48, 4, 60, uint64_t>(literal_0b1000 );
@@ -3909,198 +3716,6 @@
             }

             FAPI_TRY(fapi2::putScom(TGT0, 0x8000c81709010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200009010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200009010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200109010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200109010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200209010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200209010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200309010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_0_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200309010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200409010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200409010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200509010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200509010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200609010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200609010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200709010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_1_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200709010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200809010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200809010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200909010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200909010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200a09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200a09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200b09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_2_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200b09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200c09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200c09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200d09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200d09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200e09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200e09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002200f09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_3_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002200f09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002201009010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002201009010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002201109010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002201109010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002201209010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002201209010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002201309010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_4_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002201309010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002201409010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_0_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002201409010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002201509010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_1_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002201509010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002201609010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_2_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002201609010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8002201709010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_RX0_RXPACKS_5_RXPACK_RD_SLICE_3_RD_RX_BIT_REGS_RX_LANE_DIG_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8002201709010c3full, l_scom_buffer));
         }
         {
             FAPI_TRY(fapi2::getScom( TGT0, 0x8002280009010c3full, l_scom_buffer ));
@@ -4245,198 +3860,6 @@

             l_scom_buffer.insert<60, 4, 60, uint64_t>(literal_0b1000 );
             FAPI_TRY(fapi2::putScom(TGT0, 0x8002281709010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040009010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_0_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_0_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040009010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040109010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_0_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_0_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040109010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040209010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_0_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_0_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040209010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040309010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_0_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_0_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040309010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040409010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_1_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_1_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040409010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040509010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_1_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_1_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040509010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040609010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_1_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_1_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040609010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040709010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_1_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_1_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040709010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040809010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_2_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_2_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040809010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040909010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_2_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_2_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040909010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040a09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_2_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_2_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040a09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040b09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_2_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_2_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040b09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040c09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_3_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_3_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040c09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040d09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_3_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_3_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040d09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040e09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_3_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_3_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040e09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004040f09010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_3_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_3_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004040f09010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004041009010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_4_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_4_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004041009010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004041109010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_4_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_4_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004041109010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004041209010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_4_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_4_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004041209010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004041309010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_4_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_4_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004041309010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004041409010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_5_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_5_TXPACK_DD_SLICE_0_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004041409010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004041509010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_5_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_5_TXPACK_DD_SLICE_1_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004041509010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004041609010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_5_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_5_TXPACK_DD_SLICE_2_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004041609010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8004041709010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_TX0_TXPACKS_5_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED = 0x0;
-            l_scom_buffer.insert<48, 1, 63, uint64_t>
-            (l_IOO0_IOO_CPLT_TX0_TXPACKS_5_TXPACK_DD_SLICE_3_DD_TX_BIT_REGS_TX_LANE_PDWN_ENABLED );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8004041709010c3full, l_scom_buffer));
         }
         {
             FAPI_TRY(fapi2::getScom( TGT0, 0x8008000009010c3full, l_scom_buffer ));
@@ -4450,12 +3873,6 @@

             l_scom_buffer.insert<48, 6, 58, uint64_t>(literal_0b000000 );
             FAPI_TRY(fapi2::putScom(TGT0, 0x8008080009010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8008100009010c3full, l_scom_buffer ));
-
-            l_scom_buffer.insert<48, 3, 61, uint64_t>(literal_0b000 );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8008100009010c3full, l_scom_buffer));
         }
         {
             if (((l_chip_id == 0x5) && (l_chip_ec == 0x10)) )
@@ -4523,13 +3940,6 @@
             FAPI_TRY(fapi2::putScom(TGT0, 0x8008680009010c3full, l_scom_buffer));
         }
         {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x8008c00009010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_IREF_PDWN_B_ON = 0x1;
-            l_scom_buffer.insert<54, 1, 63, uint64_t>(l_IOO0_IOO_CPLT_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_IREF_PDWN_B_ON );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x8008c00009010c3full, l_scom_buffer));
-        }
-        {
             FAPI_TRY(fapi2::getScom( TGT0, 0x8009700009010c3full, l_scom_buffer ));

             constexpr auto l_IOO0_IOO_CPLT_RX0_RXCTL_CTL_REGS_RX_CTL_REGS_RX_RC_ENABLE_CTLE_1ST_LATCH_OFFSET_CAL_ON = 0x1;
@@ -4554,23 +3964,10 @@
             FAPI_TRY(fapi2::putScom(TGT0, 0x8009880009010c3full, l_scom_buffer));
         }
         {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x800b800009010c3full, l_scom_buffer ));
-
-            constexpr auto l_IOO0_IOO_CPLT_RX0_RXCTL_DATASM_DATASM_REGS_RX_CTL_DATASM_CLKDIST_PDWN_OFF = 0x0;
-            l_scom_buffer.insert<60, 1, 63, uint64_t>(l_IOO0_IOO_CPLT_RX0_RXCTL_DATASM_DATASM_REGS_RX_CTL_DATASM_CLKDIST_PDWN_OFF );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x800b800009010c3full, l_scom_buffer));
-        }
-        {
             FAPI_TRY(fapi2::getScom( TGT0, 0x800c0c0009010c3full, l_scom_buffer ));

             l_scom_buffer.insert<48, 6, 58, uint64_t>(literal_0b000000 );
             FAPI_TRY(fapi2::putScom(TGT0, 0x800c0c0009010c3full, l_scom_buffer));
-        }
-        {
-            FAPI_TRY(fapi2::getScom( TGT0, 0x800c140009010c3full, l_scom_buffer ));
-
-            l_scom_buffer.insert<48, 3, 61, uint64_t>(literal_0b000 );
-            FAPI_TRY(fapi2::putScom(TGT0, 0x800c140009010c3full, l_scom_buffer));
         }
         {
             FAPI_TRY(fapi2::getScom( TGT0, 0x800f1c0009010c3full, l_scom_buffer ));


L3 update -- p9_fbc_eff_config

L3 update -- p9_fbc_eff_config

- add HE epsilon tables, remove todo comments
- update p9_fbc_eff_config_calc_epsilons arguments (all const) and doxygen
- create unique error to distinguish unsupported epsilon table type, and table
  content or scaling errors
- add minimum supported core frequency FFDC to core versus nest frequency ratio
  errors

Change-Id: I5d28c88c48a201b1e3f4700ef5741329039bcff8
Original-Change-Id: I8f2da59ffb3f42babc456d28c89b176b9a34b9d7
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40235
Tested-by: Jenkins Server <8e3f934e4c44875bc48d33da3ea13d93ba9a233f@us.ibm.com>
Tested-by: PPE CI <dc75934ba5befb9221434e67a247b93aec46b36b@us.ibm.com>
Reviewed-by: Thi N. Tran <25a2bca7ae5a8ea03be09ca8d282480c08c13052@us.ibm.com>
Tested-by: Hostboot CI <52521565bd8ea18a2b112942dce4f4220a97c2c8@us.ibm.com>
Reviewed-by: DHRUVARAJ SUBHASH CHANDRAN <19c03e3300faf6397505c2237d88ece502fa4419@in.ibm.com>
Reviewed-by: Matt K. Light <19ba8ed73a0b3c376c81fced381f1ac0f483b7c2@us.ibm.com>
Reviewed-by: Daniel M. Crowell <912029ca9254ac7b5854e56910561d682e1fa2d0@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <ab93eca12e43608f33daa16a67357cd7b7e867ab@us.ibm.com>


p9_fbc_eff_config -- update LE (2 chips per group) base epsilon table

Change-Id: I21e1418bc48746967d097cd0130266f8711e1a0d
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36724
Reviewed-by: SHELTON LEUNG <0860b58d0e48839f9ac78f20341df5869a122f43@us.ibm.com>
Tested-by: Jenkins Server <8e3f934e4c44875bc48d33da3ea13d93ba9a233f@us.ibm.com>
Tested-by: Hostboot CI <52521565bd8ea18a2b112942dce4f4220a97c2c8@us.ibm.com>
Reviewed-by: Thi N. Tran <25a2bca7ae5a8ea03be09ca8d282480c08c13052@us.ibm.com>
Reviewed-by: Jenny Huynh <a6915486dc18cef6d22e35f8ab164f4d2ba6000c@us.ibm.com>
Reviewed-by: Joseph J. McGill <4a85c6614f9f065f63d8fd57cde15e48af07ea2a@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36727
Tested-by: Jenkins OP Build CI <e610bd72261d3c0a48f1e8ae36832ab00774d426@us.ibm.com>
Tested-by: FSP CI Jenkins <aa9e4d9ac7cd25905e9c0dd36d4150516e73dd86@us.ibm.com>
Reviewed-by: Daniel M. Crowell <912029ca9254ac7b5854e56910561d682e1fa2d0@us.ibm.com>

--- src/import/chips/p9/procedures/hwp/nest/p9_fbc_eff_config.C
+++ src/import/chips/p9/procedures/hwp/nest/p9_fbc_eff_config.C
@@ -53,11 +53,11 @@
 const uint8_t NUM_EPSILON_WRITE_TIERS = 2;

 // LE epsilon (2 chips per-group)
-const uint32_t EPSILON_R_T0_LE[] = {    4,    5,    5,    5,    6,    8 };
-const uint32_t EPSILON_R_T1_LE[] = {    4,    5,    5,    5,    6,    8 };
-const uint32_t EPSILON_R_T2_LE[] = {   47,   48,   49,   51,   54,   68 };
+const uint32_t EPSILON_R_T0_LE[] = {    7,    7,    7,    7,    8,    8 };
+const uint32_t EPSILON_R_T1_LE[] = {    7,    7,    7,    7,    8,    8 };
+const uint32_t EPSILON_R_T2_LE[] = {   61,   62,   63,   65,   68,   82 };
 const uint32_t EPSILON_W_T0_LE[] = {    0,    0,    0,    0,    0,    0 };
-const uint32_t EPSILON_W_T1_LE[] = {    0,    0,    0,    0,    0,    0 };
+const uint32_t EPSILON_W_T1_LE[] = {    9,    9,    7,    5,    1,    0 };

 // TODO: These values need to be updated whenever HE system info is available.
 // HE epsilon (4 chips per-group)


no message

no message

--- DK/DKFoundation/DKTimer.cpp
+++ DK/DKFoundation/DKTimer.cpp
@@ -36,30 +36,24 @@

 double DKTimer::Reset(void)
 {
-	static double freq = static_cast<double>(SystemTickFrequency());
+	static double freq = 1.0 / static_cast<double>(SystemTickFrequency());
 	Tick t = timeStamp;
 	timeStamp = SystemTick();
-	return static_cast<double>(timeStamp - t) / freq;
+	return static_cast<double>(timeStamp - t) * freq;
 }

 double DKTimer::Elapsed(void) const
 {
-	static double freq = static_cast<double>(SystemTickFrequency());
-	return static_cast<double>(SystemTick() - timeStamp) / freq;
+	static double freq = 1.0 / static_cast<double>(SystemTickFrequency());
+	return static_cast<double>(SystemTick() - timeStamp) * freq;
 }

 DKTimer::Tick DKTimer::SystemTick(void)
 {
 #ifdef _WIN32
-	static LARGE_INTEGER frequency;
-	static BOOL counterEnabled = ::QueryPerformanceFrequency(&frequency);
-	if (counterEnabled)
-	{
-		LARGE_INTEGER count;
-		::QueryPerformanceCounter(&count);
-		return count.QuadPart;
-	}
-	return ::GetTickCount();
+	LARGE_INTEGER count;
+	::QueryPerformanceCounter(&count);
+	return count.QuadPart;
 #elif defined(__APPLE__) && defined(__MACH__)
 	return mach_absolute_time();
 #elif defined(__linux__)
@@ -78,25 +72,22 @@
 DKTimer::Tick DKTimer::SystemTickFrequency(void)
 {
 #ifdef _WIN32
-	static LARGE_INTEGER frequency;
-	static BOOL counterEnabled = ::QueryPerformanceFrequency(&frequency);
-	if (counterEnabled)
+	static LONGLONG frequency = []()->LONGLONG
 	{
+		LARGE_INTEGER frequency;
+		::QueryPerformanceFrequency(&frequency);
 		return frequency.QuadPart;
-	}
-	return 1000ULL;
+	}();
+	return frequency;
 #elif defined(__APPLE__) && defined(__MACH__)
-	static struct MachTimeBase
+	static uint64_t frequency = []()->uint64_t
 	{
-		MachTimeBase(void)
-		{
-			mach_timebase_info_data_t base;
-			mach_timebase_info(&base);
-			frequency = 1000000000ULL * base.denom / base.numer;
-		}
-		uint64_t frequency;
-	} machTime;
-	return machTime.frequency;
+		mach_timebase_info_data_t base;
+		mach_timebase_info(&base);
+		uint64_t frequency = 1000000000ULL * base.denom / base.numer;
+		return frequency;
+	}();
+	return frequency;
 #elif defined(__linux__)
 	return 1000000000ULL;
 #else


Now we have C++11, but there's no constructor copypasta problem anymore.

--- src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp
+++ src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp
@@ -59,9 +59,6 @@
     singleMode(!naive && singleMode), // No single mode if naive.
     metric(metric)
 {
-  // C++11 will allow us to call out to other constructors so we can avoid this
-  // copy/paste problem.
-
   // We'll time tree building, but only if we are building trees.
   Timer::Start("tree_building");


String residency fixes

String residency fixes

--- DataSpec/DNACommon/ANCS.hpp
+++ DataSpec/DNACommon/ANCS.hpp
@@ -57,7 +57,8 @@
                 if (!conn.createBlend(cmdlPath, HECL::BlenderConnection::BlendType::Mesh))
                     return false;

-                HECL::SystemStringView bestNameView(pakRouter.getBestEntryName(*cmdlE));
+                std::string bestName = pakRouter.getBestEntryName(*cmdlE);
+                HECL::SystemStringView bestNameView(bestName);
                 fileChanged(bestNameView.sys_str().c_str());

                 typename ANCSDNA::CSKRType cskr;
@@ -76,7 +77,8 @@
         }
     }

-    HECL::SystemStringView bestNameView(pakRouter.getBestEntryName(entry));
+    std::string bestName = pakRouter.getBestEntryName(entry);
+    HECL::SystemStringView bestNameView(bestName);
     fileChanged(bestNameView.sys_str().c_str());

     /* Establish ANCS blend */


spicec-x11: Remove a race window in selection ownership release code

Well almost remove it, it was possible that another x11 app would acquire
selection ownership, and we would receive a release message from the
agent before having processed the xselection ownership change event.

Then we would set the selection owner to none, overriding the new owner.
As the comment in the patch indicates there still is a minute window left
where something similar can happen after this patch. Nothing we can do
about that (I blame the libX11 selection API).

--- client/x11/platform.cpp
+++ client/x11/platform.cpp
@@ -3466,7 +3466,15 @@
 {
     XEvent event;

+    if (XGetSelectionOwner(x_display, clipboard_prop) != platform_win) {
+        LOG_INFO("Platform::on_clipboard_release() called while not selection owner");
+        return;
+    }
+    /* Note there is a small race window here where another x11 app could
+       acquire selection ownership and we kick it off again, nothing we
+       can do about that :( */
     XSetSelectionOwner(x_display, clipboard_prop, None, CurrentTime);
+
     /* Make sure we process the XFixesSetSelectionOwnerNotify event caused
        by this, so we don't end up changing the clipboard owner to none, after
        it has already been re-owned because this event is still pending. */


remove weird pointless initialization

remove weird pointless initialization

--- src/plugins/projectexplorer/applicationrunconfiguration.cpp
+++ src/plugins/projectexplorer/applicationrunconfiguration.cpp
@@ -111,7 +111,7 @@
 // ApplicationRunControl

 ApplicationRunControl::ApplicationRunControl(QSharedPointer<ApplicationRunConfiguration> runConfiguration)
-    : RunControl(runConfiguration), m_applicationLauncher()
+    : RunControl(runConfiguration)
 {
     connect(&m_applicationLauncher, SIGNAL(applicationError(QString)),
             this, SLOT(slotError(QString)));


DesktopDevice: Hide Device Configuration widget

Change-Id: I0c522cdb20e7c08761fdb4bc0e588e5e8789895b
Reviewed-by: Aurindam Jana <7c408417cef34be80f3feca6b61197eafaefe98d@digia.com>

--- src/plugins/projectexplorer/devicesupport/desktopdevice.cpp
+++ src/plugins/projectexplorer/devicesupport/desktopdevice.cpp
@@ -70,7 +70,10 @@

 IDeviceWidget *DesktopDevice::createWidget()
 {
-    return new DesktopDeviceConfigurationWidget(sharedFromThis());
+    return 0;
+    // DesktopDeviceConfigurationWidget currently has just one editable field viz. free ports.
+    // Querying for an available port is quite straightforward. Having a field for the port
+    // range can be confusing to the user. Hence, disabling the widget for now.
 }

 QList<Core::Id> DesktopDevice::actionIds() const


QmlDesigner.model: fix for state handling

We missed the renaming of this class.

Change-Id: I030df447dc118834d7af0e273371c735cb5180ff
Reviewed-by: Marco Bubke <5254e489b34ec8bbce36789100e3fc0f41fa62ef@digia.com>

--- src/plugins/qmldesigner/designercore/model/qmlchangeset.cpp
+++ src/plugins/qmldesigner/designercore/model/qmlchangeset.cpp
@@ -57,7 +57,7 @@
 {
     return QmlModelNodeFacade::isValid() && (
                 modelNode().metaInfo().isSubclassOf("<cpp>.QDeclarative1StateOperation", -1, -1)
-                || modelNode().metaInfo().isSubclassOf("<cpp>.QDeclarativeStateOperation", -1, -1));
+                || modelNode().metaInfo().isSubclassOf("<cpp>.QQuickStateOperation", -1, -1));
 }

 void QmlPropertyChanges::removeProperty(const QString &name)


client/display_channel: gcc 4.6.0 unused fixes

--- client/display_channel.cpp
+++ client/display_channel.cpp
@@ -880,15 +880,16 @@

 void DisplayChannel::update_interrupt()
 {
-    Canvas *canvas;
+#ifdef USE_OGL
+    Canvas *canvas;
+#endif

     if (!surfaces_mngr.is_present_canvas(0) || !screen()) {
         return;
     }

+#ifdef USE_OGL
     canvas = surfaces_mngr.get_canvas(0);
-
-#ifdef USE_OGL
     if (canvas->get_pixmap_type() == CANVAS_TYPE_GL) {
         ((GCanvas *)(canvas))->pre_gl_copy();
     }
@@ -1404,7 +1405,9 @@

 void DisplayChannel::create_primary_surface(int width, int height, uint32_t format)
 {
+#ifdef USE_OGL
    Canvas *canvas;
+#endif
    _mark = false;
     attach_to_screen(get_client().get_application(), get_id());
     clear_area();
@@ -1421,9 +1424,9 @@
     _y_res = height;
     _format = format;

+#ifdef USE_OGL
     canvas = surfaces_mngr.get_canvas(0);

-#ifdef USE_OGL
     if (canvas->get_pixmap_type() == CANVAS_TYPE_GL) {
         ((GCanvas *)(canvas))->touch_context();
         screen()->set_update_interrupt_trigger(&_interrupt_update);
@@ -1434,8 +1437,9 @@

 void DisplayChannel::create_surface(int surface_id, int width, int height, uint32_t format)
 {
-   Canvas *canvas;
-
+#ifdef USE_OGL
+    Canvas *canvas;
+#endif
     AutoRef<CreateSurfaceEvent> event(new CreateSurfaceEvent(*this, surface_id, width, height,
                                                              format));
     get_client().push_event(*event);
@@ -1444,9 +1448,11 @@
         THROW("Create surface failed");
     }

+#ifdef USE_OGL
+    Canvas *canvas;
+
     canvas = surfaces_mngr.get_canvas(surface_id);

-#ifdef USE_OGL
     if (canvas->get_pixmap_type() == CANVAS_TYPE_GL) {
         ((GCanvas *)(canvas))->touch_context();
     }


fewer fallbacks and better error reporting

--- vespalib/src/apps/vespa-detect-hostname/detect_hostname.cpp
+++ vespalib/src/apps/vespa-detect-hostname/detect_hostname.cpp
@@ -4,6 +4,7 @@
 #include <stdlib.h>
 #include <vespa/vespalib/net/socket_address.h>
 #include <vespa/vespalib/stllike/string.h>
+#include <vespa/vespalib/util/stringfmt.h>
 #include <set>

 using vespalib::SocketAddress;
@@ -22,14 +23,17 @@
     return SocketAddress::normalize(&result[0]);
 }

-bool check(const vespalib::string &name, const std::set<vespalib::string> &ip_set) {
+bool check(const vespalib::string &name, const std::set<vespalib::string> &ip_set, vespalib::string &error_msg) {
     auto addr_list = SocketAddress::resolve(80, name.c_str());
     if (addr_list.empty()) {
+        error_msg = vespalib::make_string("hostname '%s' could not be resolved", name.c_str());
         return false;
     }
     for (const SocketAddress &addr: addr_list) {
         vespalib::string ip_addr = addr.ip_address();
         if (ip_set.count(ip_addr) == 0) {
+            error_msg = vespalib::make_string("hostname '%s' resolves to ip address not owned by this host (%s)",
+                                              name.c_str(), ip_addr.c_str());
             return false;
         }
     }
@@ -38,14 +42,21 @@

 int main(int, char **) {
     auto my_ip_set = make_ip_set();
-    std::vector<vespalib::string> list({get_hostname(), "localhost", "127.0.0.1", "::1"});
-    for (const vespalib::string &name: list) {
-        if (check(name, my_ip_set)) {
-            fprintf(stdout, "%s\n", name.c_str());
-            return 0;
-        }
+    vespalib::string my_hostname = get_hostname();
+    vespalib::string my_hostname_error;
+    vespalib::string localhost = "localhost";
+    vespalib::string localhost_error;
+    if (check(my_hostname, my_ip_set, my_hostname_error)) {
+        fprintf(stdout, "%s\n", my_hostname.c_str());
+    } else if (check(localhost, my_ip_set, localhost_error)) {
+        fprintf(stdout, "%s\n", localhost.c_str());
+    } else {
+        fprintf(stderr, "FATAL: hostname detection failed\n");
+        fprintf(stderr, "  INFO: canonical hostname (from gethostname/getaddrinfo): %s\n", my_hostname.c_str());
+        fprintf(stderr, "  ERROR: %s\n", my_hostname_error.c_str());
+        fprintf(stderr, "  INFO: falling back to local hostname: %s\n", localhost.c_str());
+        fprintf(stderr, "  ERROR: %s\n", localhost_error.c_str());
+        return 1;
     }
-    fprintf(stderr, "FATAL: hostname detection failed\n");
-    // XXX we should explain why it failed
-    return 1;
+    return 0;
 }


PRD: Fix in Vpd Update from Centaur DQ

PRD: Fix in Vpd Update from Centaur DQ

Change-Id: Iae6abff463013d29a6b08bd2fa1878972adefa84
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8646
Tested-by: Jenkins Server
Reviewed-by: Christopher T. Phan <f1526e3d74f0373253bcddf8332b061da0ea5be7@us.ibm.com>
Reviewed-by: Bilicon Patil <b426c6782433157989ab161e7b15e96223b19a86@in.ibm.com>
Reviewed-by: A. Patrick Williams III <c87e37b1a4035affd737b461af89fb722d635f4d@us.ibm.com>
Reviewed-by: Zane Shelley <fc96e127d170d6ac0b2af86a8a56f95974ff36e8@us.ibm.com>
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8843

--- src/usr/diag/prdf/common/plat/pegasus/prdfCenDqBitmap.C
+++ src/usr/diag/prdf/common/plat/pegasus/prdfCenDqBitmap.C
@@ -145,7 +145,7 @@
         uint8_t bitIdx  = evenDq % DQS_PER_BYTE;

         i_pins &= 0x3; // limit to 2 bits
-        uint32_t shift = (((DQS_PER_BYTE-1) - bitIdx) % 2) * 2; // 0,2,4,6
+        uint32_t shift = (((DQS_PER_BYTE-1) - bitIdx) / 2) * 2; // 0,2,4,6
         iv_data[portSlct][byteIdx] |= i_pins << shift;

     } while (0);
@@ -179,7 +179,7 @@
         if ( isDramWidthX4(iv_mba) )
         {
             i_pins &= 0xf; // limit to 4 bits
-            uint32_t shift = (((DQS_PER_BYTE-1) - bitIdx) % 4) * 4; // 0,4
+            uint32_t shift = (((DQS_PER_BYTE-1) - bitIdx) / 4) * 4; // 0,4
             iv_data[portSlct][byteIdx] |= i_pins << shift;
         }
         else
@@ -223,7 +223,7 @@
         if ( isDramWidthX4(iv_mba) )
         {
             pins = 0xf; // limit to 4 bits
-            uint8_t shift = (((DQS_PER_BYTE-1) - bitIdx) % 4) * 4; // 0,4
+            uint8_t shift = (((DQS_PER_BYTE-1) - bitIdx) / 4) * 4; // 0,4
             cmData = (cmData >> shift) & 0xf;
         }


[llvm-mca] Add a new option category for views.

With this patch, options to add/tweak views are all grouped together in the
-help output.

The new "View Options" category looks like this:

```
  View Options:

    -dispatch-stats                 - Print dispatch statistics
    -instruction-info               - Print the instruction info view
    -instruction-tables             - Print instruction tables
    -register-file-stats            - Print register file statistics
    -resource-pressure              - Print the resource pressure view
    -retire-stats                   - Print retire control unit statistics
    -scheduler-stats                - Print scheduler statistics
    -timeline                       - Print the timeline view
    -timeline-max-cycles=<uint>     - Maximum number of cycles in the timeline view. Defaults to 80 cycles
    -timeline-max-iterations=<uint> - Maximum number of iterations to print in timeline view
```

git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@330816 91177308-0d34-0410-b5e6-96231b3b80d8

--- tools/llvm-mca/llvm-mca.cpp
+++ tools/llvm-mca/llvm-mca.cpp
@@ -52,6 +52,8 @@

 using namespace llvm;

+llvm::cl::OptionCategory ViewOptions("View Options");
+
 static cl::opt<std::string>
     InputFilename(cl::Positional, cl::desc("<input file>"), cl::init("-"));

@@ -95,39 +97,47 @@
 static cl::opt<bool>
     PrintRegisterFileStats("register-file-stats",
                            cl::desc("Print register file statistics"),
+                           cl::cat(ViewOptions),
                            cl::init(false));

 static cl::opt<bool> PrintDispatchStats("dispatch-stats",
                                         cl::desc("Print dispatch statistics"),
+                                        cl::cat(ViewOptions),
                                         cl::init(false));

 static cl::opt<bool> PrintSchedulerStats("scheduler-stats",
                                          cl::desc("Print scheduler statistics"),
+                                         cl::cat(ViewOptions),
                                          cl::init(false));

 static cl::opt<bool>
     PrintRetireStats("retire-stats",
                      cl::desc("Print retire control unit statistics"),
+                     cl::cat(ViewOptions),
                      cl::init(false));

 static cl::opt<bool>
     PrintResourcePressureView("resource-pressure",
                               cl::desc("Print the resource pressure view"),
+                              cl::cat(ViewOptions),
                               cl::init(true));

 static cl::opt<bool> PrintTimelineView("timeline",
                                        cl::desc("Print the timeline view"),
+                                       cl::cat(ViewOptions),
                                        cl::init(false));

 static cl::opt<unsigned> TimelineMaxIterations(
     "timeline-max-iterations",
     cl::desc("Maximum number of iterations to print in timeline view"),
+    cl::cat(ViewOptions),
     cl::init(0));

 static cl::opt<unsigned> TimelineMaxCycles(
     "timeline-max-cycles",
     cl::desc(
         "Maximum number of cycles in the timeline view. Defaults to 80 cycles"),
+    cl::cat(ViewOptions),
     cl::init(80));

 static cl::opt<bool> AssumeNoAlias(
@@ -144,11 +154,13 @@
 static cl::opt<bool>
     PrintInstructionTables("instruction-tables",
                            cl::desc("Print instruction tables"),
+                           cl::cat(ViewOptions),
                            cl::init(false));

 static cl::opt<bool>
     PrintInstructionInfoView("instruction-info",
                              cl::desc("Print the instruction info view"),
+                             cl::cat(ViewOptions),
                              cl::init(true));

 namespace {


Fixed a bug in floating-point function unit activity.

We are not supposed to reassign a reference in C++, causing activity not
incremented correctly.

Change-Id: Ief35020c6f72c40368e0e36ff848f81b39e9ad94

--- common/BaseDatapath.cpp
+++ common/BaseDatapath.cpp
@@ -1153,21 +1153,21 @@

     if (node->is_fp_op()) {
       for (unsigned stage = 0;
-           node_level + stage <= node->get_complete_execution_cycle();
+           node_level + stage < node->get_complete_execution_cycle();
            stage++) {
-        curr_fu_activity = func_activity[func_id].at(node_level + stage);
+        funcActivity& fp_fu_activity = func_activity[func_id].at(node_level + stage);
         /* Activity for floating point functional units includes all their
          * stages.*/
         if (node->is_fp_add_op()) {
           if (node->is_double_precision())
-            curr_fu_activity.fp_dp_add += 1;
+            fp_fu_activity.fp_dp_add += 1;
           else
-            curr_fu_activity.fp_sp_add += 1;
+            fp_fu_activity.fp_sp_add += 1;
         } else if (node->is_fp_mul_op()) {
           if (node->is_double_precision())
-            curr_fu_activity.fp_dp_mul += 1;
+            fp_fu_activity.fp_dp_mul += 1;
           else
-            curr_fu_activity.fp_sp_mul += 1;
+            fp_fu_activity.fp_sp_mul += 1;
         }
       }
     } else if (node->is_int_mul_op())


Fix lodepng compile warnings

Fix lodepng compile warnings

--- src/external/pixelboost/external/lodepng/lodepng.cpp
+++ src/external/pixelboost/external/lodepng/lodepng.cpp
@@ -362,7 +362,7 @@

 /* ////////////////////////////////////////////////////////////////////////// */

-unsigned LodePNG_read32bitInt(const unsigned char* buffer)
+static unsigned LodePNG_read32bitInt(const unsigned char* buffer)
 {
   return (buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3];
 }
@@ -1423,7 +1423,7 @@
   return max_count;
 }

-void updateHashChain(unsigned short* hashchain, int* hashhead, int* hashval,
+static void updateHashChain(unsigned short* hashchain, int* hashhead, int* hashval,
                      size_t pos, int hash, unsigned windowSize)
 {
   unsigned wpos = pos % windowSize;
@@ -2536,7 +2536,7 @@
       || LodePNG_InfoColor_hasPaletteAlpha(info);
 }

-unsigned LodePNG_InfoColor_equal(const LodePNG_InfoColor* info1, const LodePNG_InfoColor* info2)
+static unsigned LodePNG_InfoColor_equal(const LodePNG_InfoColor* info1, const LodePNG_InfoColor* info2)
 {
   return info1->colorType == info2->colorType
       && info1->bitDepth  == info2->bitDepth; /*palette and color key not compared*/
@@ -2779,7 +2779,7 @@
   return error;
 }

-void LodePNG_InfoPng_swap(LodePNG_InfoPng* a, LodePNG_InfoPng* b)
+static void LodePNG_InfoPng_swap(LodePNG_InfoPng* a, LodePNG_InfoPng* b)
 {
   LodePNG_InfoPng temp = *a;
   *a = *b;
@@ -5470,7 +5470,7 @@
 }

 /*Get RGBA8 color of pixel with index i (y * width + x) from the raw image with given color type.*/
-unsigned getPixelColorRGBA8(unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *a,
+static unsigned getPixelColorRGBA8(unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *a,
                             const unsigned char* in, size_t i, const LodePNG_InfoColor* info)
 {
   if(info->colorType == 0)
@@ -5701,7 +5701,7 @@
 }

 /*Returns how many bits needed to represent given value (max 8 bit)*/
-unsigned getValueRequiredBits(unsigned char value)
+static unsigned getValueRequiredBits(unsigned char value)
 {
   if(value == 0 || value == 255) return 1;
   /*The scaling of 2-bit and 4-bit values uses multiples of 85 and 17*/
@@ -5773,7 +5773,7 @@
 #endif /*LODEPNG_COMPILE_UNKNOWN_CHUNKS*/

 /*updates values of info with a potentially smaller color model*/
-void doAutoChooseColor(LodePNG_InfoColor* infoOut,
+static void doAutoChooseColor(LodePNG_InfoColor* infoOut,
                        const unsigned char* image, unsigned w, unsigned h, LodePNG_InfoColor* infoIn)
 {
   size_t i;


Fixed 64 bit issue (XERCESC-1768)

Fixed 64 bit issue (XERCESC-1768)

git-svn-id: 3ec853389310512053d525963cab269c063bb453@614259 13f79535-47bb-0310-9956-ffa450edef68

--- src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp
+++ src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp
@@ -100,8 +100,8 @@
     * To open user-specified locale specific cat file
     * and default cat file if necessary
     */
-    if ( ((int)(fCatalogHandle=catopen(catuser, 0)) == -1) &&
-         ((int)(fCatalogHandle=catopen(catdefault, 0)) == -1)   )
+    if ( ((fCatalogHandle=catopen(catuser, 0)) == (nl_catd)-1) &&
+         ((fCatalogHandle=catopen(catdefault, 0)) == (nl_catd)-1)   )
     {
         // Probably have to call panic here
         printf("Could not open catalog:\n %s\n or %s\n", catuser, catdefault);


JavaHL: A follow-up to r22986.

JavaHL: A follow-up to r22986.

* subversion/bindings/java/javahl/native/SVNClient.cpp
  (copy): Correct fully qualified class name for ClientException
   thrown when no copy sources can be determined.

--- subversion/bindings/java/javahl/native/SVNClient.cpp
+++ subversion/bindings/java/javahl/native/SVNClient.cpp
@@ -733,7 +733,7 @@
     apr_array_header_t *srcs = copySources.array(requestPool);
     if (srcs == NULL)
     {
-        JNIUtil::throwNativeException(JAVA_PACKAGE "ClientException",
+        JNIUtil::throwNativeException(JAVA_PACKAGE "/ClientException",
                                       "Invalid copy sources");
         return;
     }


Fixed two bugs in CFG construction:

Fixed two bugs in CFG construction:

BUG 1)

CFG failed to build for empty functions, or functions containing only
NullStmts or empty compound statements.

We now handle such cases, although now we cannot test for CFG
construction failure by asserting that the last block constructed is
not NULL (since it now may be).

BUG 2)

CFG construction segfaulted on some cases when walking the AST and not
taking into account that some children of a statement may be NULL.

git-svn-id: ffe668792ed300d6c2daa1f6eba2e0aa28d7ec6c@42370 91177308-0d34-0410-b5e6-96231b3b80d8

--- AST/CFG.cpp
+++ AST/CFG.cpp
@@ -173,21 +173,18 @@

         B->addSuccessor(LI->second);
       }
-
-    // Create an empty entry block that has no predecessors.
+
     Succ = B;
-    cfg->setEntry(createBlock());
-
-    // NULL out cfg so that repeated calls to the builder will fail and that
-    // the ownership of the constructed CFG is passed to the caller.
-    CFG* t = cfg;
-    cfg = NULL;
-    return t;
-  }
-  else {
-    assert (false && "CFG construction failed.");
-    return NULL;
-  }
+  }
+
+  // Create an empty entry block that has no predecessors.
+  cfg->setEntry(createBlock());
+
+  // NULL out cfg so that repeated calls to the builder will fail and that
+  // the ownership of the constructed CFG is passed to the caller.
+  CFG* t = cfg;
+  cfg = NULL;
+  return t;
 }

 /// createBlock - Used to lazily create blocks that are connected
@@ -354,7 +351,7 @@
   CFGBlock* B = Block;
   for (Stmt::child_iterator I = S->child_begin(), E = S->child_end() ;
        I != E; ++I)
-    B = WalkAST(*I);
+    if (*I) B = WalkAST(*I);

   return B;
 }


INTEGRATION: CWS pchfix02 (1.14.2); FILE MERGED 2006/09/01 17:51:54 kaib 1.14.2.1: #i68856# Added header markers and pch files

--- sw/source/core/objectpositioning/anchoredobjectposition.cxx
+++ sw/source/core/objectpositioning/anchoredobjectposition.cxx
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: anchoredobjectposition.cxx,v $
  *
- *  $Revision: 1.14 $
+ *  $Revision: 1.15 $
  *
- *  last change: $Author: hr $ $Date: 2006-08-14 16:30:34 $
+ *  last change: $Author: obo $ $Date: 2006-09-16 21:25:40 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -32,6 +32,9 @@
  *    MA  02111-1307  USA
  *
  ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sw.hxx"
 #ifndef _ANCHOREDOBJECTPOSITION_HXX
 #include <anchoredobjectposition.hxx>
 #endif


EKF: Allow sideslip fusion with airspeed fusion

--- EKF/control.cpp
+++ EKF/control.cpp
@@ -778,7 +778,7 @@
 void Ekf::controlBetaFusion()
 {
 	bool beta_fusion_time_triggered = _time_last_imu - _time_last_beta_fuse > _params.beta_avg_ft_us;
- 	if(beta_fusion_time_triggered && _control_status.flags.fuse_beta && _control_status.flags.in_air && _time_last_arsp_fuse > 5e6){
+	if(beta_fusion_time_triggered && _control_status.flags.fuse_beta && _control_status.flags.in_air){
  		fuseSideslip();
  	}


Typedef uintX_t at beginning of a function just like others.

git-svn-id: f6089bf0e6284f307027cef4f64114ee9ebb0424@255853 91177308-0d34-0410-b5e6-96231b3b80d8

--- ELF/Symbols.cpp
+++ ELF/Symbols.cpp
@@ -32,6 +32,7 @@
 // Returns 1, 0 or -1 if this symbol should take precedence
 // over the Other, tie or lose, respectively.
 template <class ELFT> int SymbolBody::compare(SymbolBody *Other) {
+  typedef typename ELFFile<ELFT>::uintX_t uintX_t;
   assert(!isLazy() && !Other->isLazy());
   std::pair<bool, bool> L(isDefined(), !isWeak());
   std::pair<bool, bool> R(Other->isDefined(), !Other->isWeak());
@@ -59,13 +60,12 @@
       return -1;
     auto *ThisC = cast<DefinedCommon<ELFT>>(this);
     auto *OtherC = cast<DefinedCommon<ELFT>>(Other);
-    typename DefinedCommon<ELFT>::uintX_t MaxAlign =
-        std::max(ThisC->MaxAlignment, OtherC->MaxAlignment);
+    uintX_t Align = std::max(ThisC->MaxAlignment, OtherC->MaxAlignment);
     if (ThisC->Sym.st_size >= OtherC->Sym.st_size) {
-      ThisC->MaxAlignment = MaxAlign;
+      ThisC->MaxAlignment = Align;
       return 1;
     }
-    OtherC->MaxAlignment = MaxAlign;
+    OtherC->MaxAlignment = Align;
     return -1;
   }
   if (Other->isCommon())


minir fix

minir fix

--- Library/Sources/Stroika/Foundation/Containers/Association.inl
+++ Library/Sources/Stroika/Foundation/Containers/Association.inl
@@ -10,8 +10,8 @@
  ********************************************************************************
  */
 #include    "../Debug/Assertions.h"
-#include    "../Concrete/Association_Factory.h"
 #include    "../Traversal/Generator.h"
+#include    "Factory/Association_Factory.h"

 namespace   Stroika {


Fix a crash in space-to-batch conversion.

PiperOrigin-RevId: 370780907
Change-Id: I49384af38ac1b1616712d8bf39aba72b1b45b2a8

--- tensorflow/compiler/xla/service/space_to_batch_converter.cc
+++ tensorflow/compiler/xla/service/space_to_batch_converter.cc
@@ -1373,6 +1373,17 @@
       return false;
     }

+    // No base/window dilations allowed on space and batch dimensions.
+    if (window.dimensions(old_space_dim).base_dilation() != 1 ||
+        window.dimensions(old_space_dim).window_dilation() != 1) {
+      return false;
+    }
+    // No base/window dilations allowed on space and batch dimensions.
+    if (window.dimensions(old_batch_dim).base_dilation() != 1 ||
+        window.dimensions(old_batch_dim).window_dilation() != 1) {
+      return false;
+    }
+
     // Only allow small high pads.
     if (window.dimensions(old_space_dim).padding_high() >
         window.dimensions(old_space_dim).size()) {
@@ -2742,8 +2753,12 @@
     activations_chunks.push_back(activations_slice);
   }

+  int64 high_padding_to_materialize = inherent_high_padding;
+  if (total_overlap_count < inherent_high_padding + inherent_low_padding) {
+    high_padding_to_materialize = 0;
+  }
   // Insert slices for high padding.
-  for (int64 i = 0; i < inherent_high_padding; ++i) {
+  for (int64 i = 0; i < high_padding_to_materialize; ++i) {
     HloInstruction* activations_to_use = nullptr;
     activations_to_use = activations_chunks.back();

@@ -2794,7 +2809,7 @@
   int64 stride = 1;
   // This condition means there's only a single overlap possible (as the shapes
   // were grown due to padding). In this case, we increase the stride.
-  if (activations_chunks.size() > total_overlap_count) {
+  if (inherent_low_padding > total_overlap_count) {
     stride = activations_chunks.size();
   }
   window_dim->set_stride(stride);


fixed compile bug

fixed compile bug

--- NFServer/NFWorldNet_ServerPlugin/NFCWorldNet_ServerModule.cpp
+++ NFServer/NFWorldNet_ServerPlugin/NFCWorldNet_ServerModule.cpp
@@ -389,8 +389,9 @@

 void NFCWorldNet_ServerModule::OnTranspondServerReport(const int nFd, const int msgId, const char* buffer, const uint32_t nLen)
 {
+    NFGUID xGUID;
 	NFMsg::ServerInfoReport msg;
-	if (!m_pNetModule->ReceivePB(nFd,msgId, buffer, nLen, msg,NFGUID()))
+	if (!m_pNetModule->ReceivePB(nFd,msgId, buffer, nLen, msg, xGUID))
 	{
 		return;
 	}


Still need ghost cells with exact extent

--- common/vtkImageData.cxx
+++ common/vtkImageData.cxx
@@ -171,7 +171,7 @@
   unsigned long   lsize;

   // Start with the number of scalar components
-  size = (float)(this->GetNumberOfScalarComponents());
+  size = (unsigned long)(this->GetNumberOfScalarComponents());

   // Multiply by the number of bytes per scalar
   switch (this->GetScalarType())
@@ -1077,7 +1077,6 @@
       return;
       }
     this->Crop();
-    return;
     }

   if (this->UpdateNumberOfPieces == 1)


Cholesky decomposition optimization. Use matmul and mask to replace slice and dynamic update slice.

PiperOrigin-RevId: 265542335

--- tensorflow/compiler/xla/service/cholesky_expander.cc
+++ tensorflow/compiler/xla/service/cholesky_expander.cc
@@ -46,11 +46,12 @@
 //   n = a.shape[-2]
 //   l = np.zeros_like(a)
 //   for j in xrange(n):
-//     row = l[..., j, :j]
-//     row_t = np.swapaxes(row, -1, -2)
-//     l[..., j, j] = np.sqrt(a[..., j, j] - np.dot(row, row_t))
-//     l[..., j+1:, j] = (a[..., j+1:, j] - np.dot(l[..., j+1:, :j], row_t)) /
-//                       l[..., j, j]
+//     mask = np.zeros_like(a)
+//     mask[i, k] == 1 when i >= k and k == j
+//     l_square = np.dot(l, l_t)
+//     temp = a - l_square
+//     l[..., j, j] = temp(j, j)
+//     l = temp / l[..., j, j) * mask + l
 //   return l
 // Returns a (result, error) pair.
 std::pair<XlaOp, XlaOp> CholeskyUnblocked(
@@ -65,6 +66,11 @@
                               /*pos=*/0,
                               /*len=*/n_dims - 2);

+    auto matrix_dims = AsInt64Slice(a_shape.dimensions())
+                           .subspan(
+                               /*pos=*/0,
+                               /*len=*/n_dims);
+
     XlaOp l = ZerosLike(a);

     // Construct the for loop body to iterate over rows.
@@ -73,63 +79,33 @@
             XlaBuilder* body_builder) -> StatusOr<std::vector<XlaOp>> {
       std::vector<int64> row_shape_dims(major_dims.begin(), major_dims.end());
       std::vector<int64> col_shape_dims(major_dims.begin(), major_dims.end());
-      row_shape_dims.push_back(1);
-      row_shape_dims.push_back(n);
-      auto mask_zeros_row =
-          Zeros(body_builder,
-                ShapeUtil::MakeShape(a_shape.element_type(), row_shape_dims));
-
-      col_shape_dims.push_back(n);
-      col_shape_dims.push_back(1);
-      auto mask_zeros_col =
-          Zeros(body_builder,
-                ShapeUtil::MakeShape(a_shape.element_type(), col_shape_dims));
-
-      auto mask_range_row =
-          Iota(body_builder, ShapeUtil::MakeShape(S32, row_shape_dims),
-               /*iota_dimension=*/n_dims - 1);
-      auto mask_range_col =
-          Iota(body_builder, ShapeUtil::MakeShape(S32, col_shape_dims),
-               /*iota_dimension=*/n_dims - 2);
       auto body_a = loop_vars[0];
       auto body_l = loop_vars[1];
       auto seen_error = loop_vars[2];
-
-      // row = l[..., i, :i]
-      // select the whole i-th row, then mask out all columns past i-1
-      auto zero = ConstantR0<int32>(body_builder, 0);
-      auto l_i = DynamicSliceInMinorDims(body_l, {i, zero}, {1, n});
-      auto row = Select(Ge(mask_range_row, i), mask_zeros_row, l_i);
-      // a[..., i, i]
-      auto a_ii = DynamicSliceInMinorDims(body_a, {i, i}, {1, 1});
-      // np.dot(row, np.swapaxes(row, -1, -2))
-      auto diag_dot = BatchDot(row, false, row, true, precision);
-      // l[..., i, i] = np.sqrt(a[..., i, i] - np.dot(row,
-      //                                              np.swapaxes(row, -1, -2)))
-      auto l_ii = a_ii - diag_dot;
+      auto iota_row = Iota(body_builder, ShapeUtil::MakeShape(S32, matrix_dims),
+                           n_dims - 1);
+      auto iota_col = Iota(body_builder, ShapeUtil::MakeShape(S32, matrix_dims),
+                           n_dims - 2);
+
+      auto mask_pred = Ge(iota_col, iota_row);
+      mask_pred = And(mask_pred, Eq(iota_row, i));
+      auto mask_zeros =
+          Zeros(body_builder,
+                ShapeUtil::MakeShape(a_shape.element_type(), matrix_dims));
+      // L * L.T, This matrix has of a lot of multiplying with zero
+      // (namely, L[:, j:] = 0) and redudant computation, but it is faster
+      // than slice.
+      auto l_square = BatchDot(body_l, false, body_l, true, precision);
+
+      // A - L*L.T
+      l_square = body_a - l_square;
+      auto l_ii = DynamicSliceInMinorDims(l_square, {i, i}, {1, 1});
+      l_ii = Sqrt(l_ii);
+      // L = (A - L*L.T) / l_ii * mask + L
+      body_l = Select(mask_pred, l_square / l_ii, mask_zeros) + body_l;
+
       seen_error =
           Or(seen_error, Any(Or(Le(l_ii, ZerosLike(l_ii)), IsNan(l_ii))));
-      l_ii = Sqrt(l_ii);
-
-      // a[..., i+1:, i]
-      // select the whole i-th column, then mask out all rows above i+1
-      auto a_0i = DynamicSliceInMinorDims(body_a, {i}, {1});
-      auto a_ip1i = Select(Le(mask_range_col, i), mask_zeros_col, a_0i);
-
-      // l[..., i+1:, i] = (a[..., i+1:, i] - np.dot(l[..., i+1:, :i], r.T)) /
-      //                   l[..., i, i]
-      // The columns in [i, n] are zeroed out in `row`, so we just have to
-      // zero out rows above i+1 after the BatchDot. np.dot(l[..., :, :i],
-      // r.T)
-      auto dot = BatchDot(body_l, false, row, true, precision);
-      // np.dot(l[..., i+1:, :i], r.T)
-      auto dot_ip1 = Select(Le(mask_range_col, i), mask_zeros_col, dot);
-
-      body_l =
-          DynamicUpdateSliceInMinorDims(body_l, (a_ip1i - dot_ip1) / l_ii, {i});
-      // Assign the diagonal after the rest of the column because otherwise the
-      // column assign will wrap around and overwrite the diagonal assign.
-      body_l = DynamicUpdateSliceInMinorDims(body_l, l_ii, {i, i});

       return std::vector<XlaOp>{body_a, body_l, seen_error};
     };


Display the debug log.

Display the debug log.

It facilitates the error checking.

--- OpenGLESApp2/OpenGLESApp2.Android.NativeActivity/Renderer.cpp
+++ OpenGLESApp2/OpenGLESApp2.Android.NativeActivity/Renderer.cpp
@@ -21,6 +21,35 @@
 namespace Mai {

 static const Vector2F referenceViewportSize(480, 800);
+//#define SSU_ENABLE_DISPLAY_LOG
+#ifdef SSU_ENABLE_DISPLAY_LOG
+static bool hasDebugLog = false;
+static int debugLogIndex = 0;
+static char debugLogBuffer[16][256];
+# ifdef __ANDROID__
+#	define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "Mai.Renderer", __VA_ARGS__))
+#	define LOGE(...) ( \
+	  (void)snprintf(debugLogBuffer[(debugLogIndex++) % 16], 255, __VA_ARGS__), \
+	  (void)__android_log_print(ANDROID_LOG_ERROR, "Mai.Renderer", __VA_ARGS__), \
+	  hasDebugLog = true \
+	)
+# else
+#	define LOGI(...) ((void)printf(__VA_ARGS__), (void)printf("\n"))
+#	define LOGE(...) ( \
+	  (void)snprintf(debugLogBuffer[(debugLogIndex++) % 16], 255, __VA_ARGS__), \
+	  (void)printf(__VA_ARGS__), (void)printf("\n"), \
+	  hasDebugLog = true \
+	)
+# endif // __ANDROID__
+#else
+# ifdef __ANDROID__
+#	define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "Mai.Renderer", __VA_ARGS__))
+#	define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "Mai.Renderer", __VA_ARGS__))
+# else
+#	define LOGI(...) ((void)printf(__VA_ARGS__), (void)printf("\n"))
+#	define LOGE(...) ((void)printf(__VA_ARGS__), (void)printf("\n"))
+# endif // __ANDROID__
+#endif // SSU_ENABLE_DISPLAY_LOG

 #ifdef __ANDROID__
 #define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "AndroidProject1.NativeActivity", __VA_ARGS__))
@@ -1726,6 +1755,21 @@

 	DrawFontFoo();

+#ifdef SSU_ENABLE_DISPLAY_LOG
+	if (hasDebugLog) {
+	  const float x = viewport[2] * 0.025f;
+	  const float y = viewport[3] * 0.025f;
+	  int lines = 0;
+	  for (int i = 0; i < 16; ++i) {
+		const std::vector<std::string> vs = split<std::string>(debugLogBuffer[i], '\n', [](const std::string& s) { return s; });
+		for (const std::string& e : vs) {
+		  DrawFont(Position2F(x, y + 16.0f * lines), e.c_str());
+		  ++lines;
+		}
+	  }
+	}
+#endif // SSU_ENABLE_DISPLAY_LOG
+
 #ifndef NDEBUG
 	// ptH[}Xv.
 	{