aboutsummaryrefslogtreecommitdiff
path: root/opcodes/nfp-dis.c
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/nfp-dis.c')
-rw-r--r--opcodes/nfp-dis.c85
1 files changed, 40 insertions, 45 deletions
diff --git a/opcodes/nfp-dis.c b/opcodes/nfp-dis.c
index 30442db..9dda34b 100644
--- a/opcodes/nfp-dis.c
+++ b/opcodes/nfp-dis.c
@@ -39,14 +39,9 @@
#define _NFP_ERR_STOP -1
#define _NFP_ERR_CONT -8
-/* The bfd_vma type has the description below, so we use that and BFD_VMA_FMT
- instead of uint64_t or bfd_uint64_t.
- "Represent a target address. Also used as a generic unsigned type
- which is guaranteed to be big enough to hold any arithmetic types
- we need to deal with." */
-
#define _BTST(v, b) (((v) >> b) & 1)
-#define _BF(v, msb, lsb) (((v) >> (lsb)) & ((1U << ((msb) - (lsb) + 1)) - 1))
+#define _BF(v, msb, lsb) (((v) >> (lsb)) & \
+ ((1U << ((msb) - (lsb) + 1)) - 1))
#define _BFS(v, msb, lsb, lshift) (_BF(v, msb, lsb) << (lshift))
#define _NFP_ME27_28_CSR_CTX_ENABLES 0x18
@@ -928,10 +923,10 @@ static const nfp_cmd_mnemonic nfp_me28_mnemonics[] =
};
static int
-nfp_me_print_invalid (bfd_vma instr, struct disassemble_info *dinfo)
+nfp_me_print_invalid (uint64_t instr, struct disassemble_info *dinfo)
{
const char * err_msg = N_("<invalid_instruction>:");
- dinfo->fprintf_func (dinfo->stream, "%s 0x%" BFD_VMA_FMT "x", err_msg, instr);
+ dinfo->fprintf_func (dinfo->stream, "%s 0x%" PRIx64, err_msg, instr);
return _NFP_ERR_CONT;
}
@@ -1101,7 +1096,7 @@ nfp_me_print_opnd8 (unsigned int opnd, char bank, int num_ctx, int lmem_ext,
}
static int
-nfp_me27_28_print_alu_shf (bfd_vma instr, unsigned int pred_cc,
+nfp_me27_28_print_alu_shf (uint64_t instr, unsigned int pred_cc,
unsigned int dst_lmext, unsigned int src_lmext,
unsigned int gpr_wrboth,
int num_ctx, struct disassemble_info *dinfo)
@@ -1225,7 +1220,7 @@ nfp_me27_28_print_alu_shf (bfd_vma instr, unsigned int pred_cc,
}
static int
-nfp_me27_28_print_alu (bfd_vma instr, unsigned int pred_cc,
+nfp_me27_28_print_alu (uint64_t instr, unsigned int pred_cc,
unsigned int dst_lmext, unsigned int src_lmext,
unsigned int gpr_wrboth,
int num_ctx, struct disassemble_info *dinfo)
@@ -1416,7 +1411,7 @@ nfp_me27_28_print_alu (bfd_vma instr, unsigned int pred_cc,
}
static int
-nfp_me27_28_print_immed (bfd_vma instr, unsigned int pred_cc,
+nfp_me27_28_print_immed (uint64_t instr, unsigned int pred_cc,
unsigned int dst_lmext,
unsigned int gpr_wrboth,
int num_ctx, struct disassemble_info *dinfo)
@@ -1486,7 +1481,7 @@ nfp_me27_28_print_immed (bfd_vma instr, unsigned int pred_cc,
}
static int
-nfp_me27_28_print_ld_field (bfd_vma instr, unsigned int pred_cc,
+nfp_me27_28_print_ld_field (uint64_t instr, unsigned int pred_cc,
unsigned int dst_lmext, unsigned int src_lmext,
unsigned int gpr_wrboth,
int num_ctx, struct disassemble_info *dinfo)
@@ -1557,7 +1552,7 @@ nfp_me27_28_print_ld_field (bfd_vma instr, unsigned int pred_cc,
}
static int
-nfp_me27_28_print_ctx_arb (bfd_vma instr, struct disassemble_info *dinfo)
+nfp_me27_28_print_ctx_arb (uint64_t instr, struct disassemble_info *dinfo)
{
unsigned int resume_addr = _BFS (instr, 40, 40, 13) | _BF (instr, 34, 22);
unsigned int defer = _BF (instr, 21, 20);
@@ -1607,7 +1602,7 @@ nfp_me27_28_print_ctx_arb (bfd_vma instr, struct disassemble_info *dinfo)
}
static int
-nfp_me27_28_print_local_csr (bfd_vma instr,
+nfp_me27_28_print_local_csr (uint64_t instr,
unsigned int src_lmext,
int num_ctx, struct disassemble_info *dinfo)
{
@@ -1674,7 +1669,7 @@ nfp_me27_28_print_local_csr (bfd_vma instr,
}
static int
-nfp_me27_28_print_branch (bfd_vma instr,
+nfp_me27_28_print_branch (uint64_t instr,
const char *br_inpstates[16],
struct disassemble_info *dinfo)
{
@@ -1723,7 +1718,7 @@ nfp_me27_28_print_branch (bfd_vma instr,
}
static int
-nfp_me27_28_print_br_byte (bfd_vma instr,
+nfp_me27_28_print_br_byte (uint64_t instr,
unsigned int src_lmext, int num_ctx,
struct disassemble_info *dinfo)
{
@@ -1768,7 +1763,7 @@ nfp_me27_28_print_br_byte (bfd_vma instr,
}
static int
-nfp_me27_28_print_br_bit (bfd_vma instr, unsigned int src_lmext,
+nfp_me27_28_print_br_bit (uint64_t instr, unsigned int src_lmext,
int num_ctx, struct disassemble_info *dinfo)
{
unsigned int srcA = _BF (instr, 7, 0);
@@ -1807,7 +1802,7 @@ nfp_me27_28_print_br_bit (bfd_vma instr, unsigned int src_lmext,
}
static int
-nfp_me27_28_print_br_alu (bfd_vma instr, unsigned int src_lmext,
+nfp_me27_28_print_br_alu (uint64_t instr, unsigned int src_lmext,
int num_ctx, struct disassemble_info *dinfo)
{
unsigned int srcA = _BF (instr, 9, 0);
@@ -1845,7 +1840,7 @@ nfp_me27_28_print_br_alu (bfd_vma instr, unsigned int src_lmext,
}
static int
-nfp_me27_28_print_mult (bfd_vma instr, unsigned int pred_cc,
+nfp_me27_28_print_mult (uint64_t instr, unsigned int pred_cc,
unsigned int dst_lmext, unsigned int src_lmext,
unsigned int gpr_wrboth,
int num_ctx, struct disassemble_info *dinfo)
@@ -1956,7 +1951,7 @@ nfp_me_find_mnemonic (unsigned int cpp_tgt, unsigned int cpp_act,
/* NFP-32xx (ME Version 2.7). */
static int
-nfp_me27_print_cmd (bfd_vma instr, int third_party_32bit,
+nfp_me27_print_cmd (uint64_t instr, int third_party_32bit,
int num_ctx, struct disassemble_info *dinfo)
{
unsigned int srcA = _BF (instr, 7, 0);
@@ -2158,75 +2153,75 @@ nfp_me27_print_cmd (bfd_vma instr, int third_party_32bit,
}
static int
-nfp_me27_print_alu_shf (bfd_vma instr, int num_ctx,
+nfp_me27_print_alu_shf (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
return nfp_me27_28_print_alu_shf (instr, 0, 0, 0, 0, num_ctx, dinfo);
}
static int
-nfp_me27_print_alu (bfd_vma instr, int num_ctx,
+nfp_me27_print_alu (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
return nfp_me27_28_print_alu_shf (instr, 0, 0, 0, 0, num_ctx, dinfo);
}
static int
-nfp_me27_print_immed (bfd_vma instr, int num_ctx,
+nfp_me27_print_immed (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
return nfp_me27_28_print_immed (instr, 0, 0, 0, num_ctx, dinfo);
}
static int
-nfp_me27_print_ld_field (bfd_vma instr, int num_ctx,
+nfp_me27_print_ld_field (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
return nfp_me27_28_print_ld_field (instr, 0, 0, 0, 0, num_ctx, dinfo);
}
static int
-nfp_me27_print_ctx_arb (bfd_vma instr, struct disassemble_info *dinfo)
+nfp_me27_print_ctx_arb (uint64_t instr, struct disassemble_info *dinfo)
{
return nfp_me27_28_print_ctx_arb (instr, dinfo);
}
static int
-nfp_me27_print_local_csr (bfd_vma instr, int num_ctx,
+nfp_me27_print_local_csr (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
return nfp_me27_28_print_local_csr (instr, 0, num_ctx, dinfo);
}
static int
-nfp_me27_print_branch (bfd_vma instr, struct disassemble_info *dinfo)
+nfp_me27_print_branch (uint64_t instr, struct disassemble_info *dinfo)
{
return nfp_me27_28_print_branch (instr, nfp_me27_br_inpstates, dinfo);
}
static int
-nfp_me27_print_br_byte (bfd_vma instr, int num_ctx,
+nfp_me27_print_br_byte (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
return nfp_me27_28_print_br_byte (instr, 0, num_ctx, dinfo);
}
static int
-nfp_me27_print_br_bit (bfd_vma instr, int num_ctx,
+nfp_me27_print_br_bit (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
return nfp_me27_28_print_br_bit (instr, 0, num_ctx, dinfo);
}
static int
-nfp_me27_print_br_alu (bfd_vma instr, int num_ctx,
+nfp_me27_print_br_alu (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
return nfp_me27_28_print_br_alu (instr, 0, num_ctx, dinfo);
}
static int
-nfp_me27_print_mult (bfd_vma instr, int num_ctx,
+nfp_me27_print_mult (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
return nfp_me27_28_print_mult (instr, 0, 0, 0, 0, num_ctx, dinfo);
@@ -2235,7 +2230,7 @@ nfp_me27_print_mult (bfd_vma instr, int num_ctx,
/*NFP-6xxx/4xxx (ME Version 2.8). */
static int
-nfp_me28_print_cmd (bfd_vma instr, int third_party_32bit,
+nfp_me28_print_cmd (uint64_t instr, int third_party_32bit,
int num_ctx, struct disassemble_info *dinfo)
{
unsigned int srcA = _BF (instr, 7, 0);
@@ -2421,7 +2416,7 @@ nfp_me28_print_cmd (bfd_vma instr, int third_party_32bit,
}
static int
-nfp_me28_print_alu_shf (bfd_vma instr, int num_ctx,
+nfp_me28_print_alu_shf (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
unsigned int gpr_wrboth = _BTST (instr, 41);
@@ -2434,7 +2429,7 @@ nfp_me28_print_alu_shf (bfd_vma instr, int num_ctx,
}
static int
-nfp_me28_print_alu (bfd_vma instr, int num_ctx,
+nfp_me28_print_alu (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
unsigned int gpr_wrboth = _BTST (instr, 41);
@@ -2447,7 +2442,7 @@ nfp_me28_print_alu (bfd_vma instr, int num_ctx,
}
static int
-nfp_me28_print_immed (bfd_vma instr, int num_ctx,
+nfp_me28_print_immed (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
unsigned int gpr_wrboth = _BTST (instr, 41);
@@ -2459,7 +2454,7 @@ nfp_me28_print_immed (bfd_vma instr, int num_ctx,
}
static int
-nfp_me28_print_ld_field (bfd_vma instr, int num_ctx,
+nfp_me28_print_ld_field (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
unsigned int gpr_wrboth = _BTST (instr, 41);
@@ -2472,13 +2467,13 @@ nfp_me28_print_ld_field (bfd_vma instr, int num_ctx,
}
static int
-nfp_me28_print_ctx_arb (bfd_vma instr, struct disassemble_info *dinfo)
+nfp_me28_print_ctx_arb (uint64_t instr, struct disassemble_info *dinfo)
{
return nfp_me27_28_print_ctx_arb (instr, dinfo);
}
static int
-nfp_me28_print_local_csr (bfd_vma instr, int num_ctx,
+nfp_me28_print_local_csr (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
unsigned int src_lmext = _BTST (instr, 42);
@@ -2487,13 +2482,13 @@ nfp_me28_print_local_csr (bfd_vma instr, int num_ctx,
}
static int
-nfp_me28_print_branch (bfd_vma instr, struct disassemble_info *dinfo)
+nfp_me28_print_branch (uint64_t instr, struct disassemble_info *dinfo)
{
return nfp_me27_28_print_branch (instr, nfp_me28_br_inpstates, dinfo);
}
static int
-nfp_me28_print_br_byte (bfd_vma instr, int num_ctx,
+nfp_me28_print_br_byte (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
unsigned int src_lmext = _BTST (instr, 42);
@@ -2501,7 +2496,7 @@ nfp_me28_print_br_byte (bfd_vma instr, int num_ctx,
}
static int
-nfp_me28_print_br_bit (bfd_vma instr, int num_ctx,
+nfp_me28_print_br_bit (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
unsigned int src_lmext = _BTST (instr, 42);
@@ -2509,7 +2504,7 @@ nfp_me28_print_br_bit (bfd_vma instr, int num_ctx,
}
static int
-nfp_me28_print_br_alu (bfd_vma instr, int num_ctx,
+nfp_me28_print_br_alu (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
unsigned int src_lmext = _BTST (instr, 42);
@@ -2517,7 +2512,7 @@ nfp_me28_print_br_alu (bfd_vma instr, int num_ctx,
}
static int
-nfp_me28_print_mult (bfd_vma instr, int num_ctx,
+nfp_me28_print_mult (uint64_t instr, int num_ctx,
struct disassemble_info *dinfo)
{
unsigned int gpr_wrboth = _BTST (instr, 41);
@@ -2803,7 +2798,7 @@ _print_instrs (bfd_vma addr, struct disassemble_info *dinfo, nfp_opts * opts)
nfp_priv_data *priv = init_nfp_priv (dinfo);
bfd_byte buffer[8];
int err;
- bfd_vma instr = 0;
+ uint64_t instr = 0;
size_t island, menum;
int num_ctx, scs_cnt, addr_3rdparty32, pc, tmpi, tmpj;
int is_text = 1;