aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIndu Bhagat <indu.bhagat@oracle.com>2022-12-09 10:22:31 -0800
committerIndu Bhagat <indu.bhagat@oracle.com>2022-12-09 10:22:31 -0800
commit70cfae61f4ed5db02d8daa59dc4432ff2d9302bd (patch)
tree84c69e8b7dac65f8e2b2645f2731a68b0acdaf05
parent1e2a61ef2d94d6021793f7f59281aa2522ece15f (diff)
downloadbinutils-70cfae61f4ed5db02d8daa59dc4432ff2d9302bd.zip
binutils-70cfae61f4ed5db02d8daa59dc4432ff2d9302bd.tar.gz
binutils-70cfae61f4ed5db02d8daa59dc4432ff2d9302bd.tar.bz2
sframe.h: make some macros more precise
include/ChangeLog: * sframe.h (SFRAME_V1_FUNC_INFO): Use specific bits only. (SFRAME_V1_FRE_INFO): Likewise.
-rw-r--r--include/sframe.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/include/sframe.h b/include/sframe.h
index 7e31284..7e167bf 100644
--- a/include/sframe.h
+++ b/include/sframe.h
@@ -192,10 +192,10 @@ typedef struct sframe_func_desc_entry
/* Macros to compose and decompose function info in FDE. */
#define SFRAME_V1_FUNC_INFO(fde_type, fre_enc_type) \
- (((fde_type) & 0x1) << 4 | (fre_enc_type))
+ ((((fde_type) & 0x1) << 4) | ((fre_enc_type) & 0xf))
#define SFRAME_V1_FUNC_FRE_TYPE(data) ((data) & 0xf)
-#define SFRAME_V1_FUNC_FDE_TYPE(data) ((data >> 4) & 0x1)
+#define SFRAME_V1_FUNC_FDE_TYPE(data) (((data) >> 4) & 0x1)
/* Size of stack frame offsets in an SFrame Frame Row Entry. A single
SFrame FRE has all offsets of the same size. Offset size may vary
@@ -240,7 +240,8 @@ typedef struct sframe_fre_info
/* Macros to compose and decompose FRE info. */
#define SFRAME_V1_FRE_INFO(base_reg_id, offset_num, offset_size) \
- ((offset_size << 5) | (offset_num << 1) | (base_reg_id))
+ ((((offset_size) & 0x3) << 5) | (((offset_num) & 0xf) << 1) | \
+ ((base_reg_id) & 0x1))
#define SFRAME_V1_FRE_CFA_BASE_REG_ID(data) ((data) & 0x1)
#define SFRAME_V1_FRE_OFFSET_COUNT(data) (((data) >> 1) & 0xf)