/* Disassemble i80960 instructions.
- Copyright 1990, 1991, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2003,
- 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1990-2018 Free Software Foundation, Inc.
This file is part of the GNU opcodes library.
02110-1301, USA. */
#include "sysdep.h"
-#include "dis-asm.h"
+#include "disassemble.h"
static const char *const reg_names[] = {
/* 0 */ "pfp", "sp", "rip", "r3", "r4", "r5", "r6", "r7",
return;
}
- (*info->fprintf_func) (stream, ctrl_tab[i].name);
+ (*info->fprintf_func) (stream, "%s", ctrl_tab[i].name);
if (word1 & 2)
/* Predicts branch not taken. */
(*info->fprintf_func) (stream, ".f");
return;
}
- (*info->fprintf_func) (stream, cobr_tab[i].name);
+ (*info->fprintf_func) (stream, "%s", cobr_tab[i].name);
/* Predicts branch not taken. */
if (word1 & 2)
/* M1 is 1 */
(*info->fprintf_func) (stream, "%d", src1);
else
- (*info->fprintf_func) (stream, reg_names[src1]);
+ (*info->fprintf_func) (stream, "%s", reg_names[src1]);
if (cobr_tab[i].numops > 1)
{
fp = 0;
}
- (*info->fprintf_func) (stream, mnemp);
+ (*info->fprintf_func) (stream, "%s", mnemp);
s1 = (word1 >> 5) & 1;
s2 = (word1 >> 6) & 1;
/* Register Instruction Operand. */
static void
-regop (int mode, int spec, int reg, int fp)
+regop (int mode, int spec, int fp_reg, int fp)
{
if (fp)
{
if (mode == 1)
{
/* FP operand. */
- switch (reg)
+ switch (fp_reg)
{
case 0: (*info->fprintf_func) (stream, "fp0");
break;
else
{
/* Non-FP register. */
- (*info->fprintf_func) (stream, reg_names[reg]);
+ (*info->fprintf_func) (stream, "%s", reg_names[fp_reg]);
}
}
else
if (mode == 1)
{
/* Literal. */
- (*info->fprintf_func) (stream, "%d", reg);
+ (*info->fprintf_func) (stream, "%d", fp_reg);
}
else
{
/* Register. */
if (spec == 0)
- (*info->fprintf_func) (stream, reg_names[reg]);
+ (*info->fprintf_func) (stream, "%s", reg_names[fp_reg]);
else
- (*info->fprintf_func) (stream, "sf%d", reg);
+ (*info->fprintf_func) (stream, "sf%d", fp_reg);
}
}
}
/* Register Instruction Destination Operand. */
static void
-dstop (int mode, int reg, int fp)
+dstop (int mode, int dest_reg, int fp)
{
/* 'dst' operand can't be a literal. On non-FP instructions, register
mode is assumed and "m3" acts as if were "s3"; on FP-instructions,
sf registers are not allowed so m3 acts normally. */
if (fp)
- regop (mode, 0, reg, fp);
+ regop (mode, 0, dest_reg, fp);
else
- regop (0, mode, reg, fp);
+ regop (0, mode, dest_reg, fp);
}
static void