diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 61e31cc53f6..292d9c968d3 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -976,7 +976,7 @@ enum aarch64_opnd_qualifier /* Special qualifier used for indicating error in qualifier retrieval. */ AARCH64_OPND_QLF_ERR, -}; +} ATTRIBUTE_PACKED; /* Instruction class. */ @@ -1225,8 +1225,8 @@ enum err_type #define AARCH64_MAX_OPND_NUM 7 /* Maximum number of qualifier sequences an instruction can have. */ #define AARCH64_MAX_QLF_SEQ_NUM 10 -/* Operand qualifier typedef; optimized for the size. */ -typedef unsigned char aarch64_opnd_qualifier_t; +/* Operand qualifier typedef */ +typedef enum aarch64_opnd_qualifier aarch64_opnd_qualifier_t; /* Operand qualifier sequence typedef. */ typedef aarch64_opnd_qualifier_t \ aarch64_opnd_qualifier_seq_t [AARCH64_MAX_OPND_NUM]; diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 437e125c46d..5ac2277e102 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -762,9 +762,9 @@ aarch64_get_expected_qualifier (const aarch64_opnd_qualifier_seq_t *qseq_list, it can mean no qualifier for the operand, or the qualifer sequence is not in use (when all qualifiers in the sequence are NILs), we have to handle this special case here. */ - if (known_qlf == AARCH64_OPND_NIL) + if (((enum aarch64_opnd) known_qlf) == AARCH64_OPND_NIL) { - assert (qseq_list[0][known_idx] == AARCH64_OPND_NIL); + assert (((enum aarch64_opnd) qseq_list[0][known_idx]) == AARCH64_OPND_NIL); return qseq_list[0][idx]; } @@ -775,7 +775,7 @@ aarch64_get_expected_qualifier (const aarch64_opnd_qualifier_seq_t *qseq_list, if (saved_i != -1) /* More than one sequences are found to have KNOWN_QLF at KNOWN_IDX. */ - return AARCH64_OPND_NIL; + return AARCH64_OPND_QLF_NIL; saved_i = i; } }