From 8f67e70cb9fc645f326f50ed4fba97018e2cd8d4 Mon Sep 17 00:00:00 2001 From: Santosh Puranik Date: Thu, 29 Oct 2015 14:20:53 +0530 Subject: Fix mask calculation in buffer insert function Change-Id: Iec346df5b73f4e1796a73b1c6ac8fcebfcf58c4d Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/21589 Tested-by: Jenkins Server Reviewed-by: Sachin Gupta Reviewed-by: Brian Silver Reviewed-by: Jennifer A. Stofer --- import/hwpf/fapi2/include/buffer.H | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/import/hwpf/fapi2/include/buffer.H b/import/hwpf/fapi2/include/buffer.H index 794193f8..625de347 100644 --- a/import/hwpf/fapi2/include/buffer.H +++ b/import/hwpf/fapi2/include/buffer.H @@ -483,8 +483,8 @@ class buffer (target_length - TS); // Get mask value for Target buffer - // Note: Need "& 0UL" because bit shift left for Target buffer doesn't roll off - uint64_t mask = ((~0UL << (parameterTraits::bit_length() - L)) & ~0UL) + // Note: Need "& 0ULL" because bit shift left for Target buffer doesn't roll off + uint64_t mask = ((~0ULL << (parameterTraits::bit_length() - L)) & ~0ULL) >> target_start; // Align the source to the target. Make things signed so we know which way to shift. @@ -557,9 +557,9 @@ class buffer (target_length - i_targetStart); // Get mask value for Target buffer - // Note: Need "& 0UL" because bit shift left for Target buffer doesn't roll off - uint64_t mask = ((~0UL << (parameterTraits::bit_length() - i_len)) & - ~0UL) >> target_start; + // Note: Need "& 0ULL" because bit shift left for Target buffer doesn't roll off + uint64_t mask = ((~0ULL << (parameterTraits::bit_length() - i_len)) & + ~0ULL) >> target_start; // Align the source to the target. Make things signed so we know which way to shift. int32_t shift = source_start - target_start; -- cgit v1.2.3