mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-01 14:03:56 +08:00
Fix formatting.
This commit is contained in:
parent
8098403c53
commit
87271fa61d
@ -1,6 +1,8 @@
|
||||
2000-07-17 Kazu Hirata <kazu@hxi.com>
|
||||
|
||||
* config/tc-w65.c: Fix formatting.
|
||||
* config/tc-mn10200.c: Fix formatting.
|
||||
* config/tc-mn10300.c: Likewise.
|
||||
|
||||
2000-07-17 Frank Ch. Eigler <fche@redhat.com>
|
||||
|
||||
|
@ -31,7 +31,8 @@ struct reg_name
|
||||
int value;
|
||||
};
|
||||
|
||||
/* Generic assembler global variables which must be defined by all targets. */
|
||||
/* Generic assembler global variables which must be defined by all
|
||||
targets. */
|
||||
|
||||
/* Characters which always start a comment. */
|
||||
const char comment_chars[] = "#";
|
||||
@ -51,7 +52,6 @@ const char EXP_CHARS[] = "eE";
|
||||
as in 0d1.0. */
|
||||
const char FLT_CHARS[] = "dD";
|
||||
|
||||
|
||||
const relax_typeS md_relax_table[] = {
|
||||
/* bCC relaxing */
|
||||
{0x81, -0x7e, 2, 1},
|
||||
@ -70,7 +70,8 @@ const relax_typeS md_relax_table[] = {
|
||||
{0x800006, -0x7ffff9, 5, 0},
|
||||
|
||||
};
|
||||
/* local functions */
|
||||
|
||||
/* Local functions. */
|
||||
static void mn10200_insert_operand PARAMS ((unsigned long *, unsigned long *,
|
||||
const struct mn10200_operand *,
|
||||
offsetT, char *, unsigned,
|
||||
@ -83,8 +84,7 @@ static boolean data_register_name PARAMS ((expressionS *expressionP));
|
||||
static boolean address_register_name PARAMS ((expressionS *expressionP));
|
||||
static boolean other_register_name PARAMS ((expressionS *expressionP));
|
||||
|
||||
|
||||
/* fixups */
|
||||
/* Fixups. */
|
||||
#define MAX_INSN_FIXUPS (5)
|
||||
struct mn10200_fixup
|
||||
{
|
||||
@ -99,7 +99,7 @@ const char *md_shortopts = "";
|
||||
struct option md_longopts[] = {
|
||||
{NULL, no_argument, NULL, 0}
|
||||
};
|
||||
size_t md_longopts_size = sizeof(md_longopts);
|
||||
size_t md_longopts_size = sizeof (md_longopts);
|
||||
|
||||
/* The target specific pseudo-ops which we support. */
|
||||
const pseudo_typeS md_pseudo_table[] =
|
||||
@ -118,7 +118,8 @@ static const struct reg_name data_registers[] =
|
||||
{ "d2", 2 },
|
||||
{ "d3", 3 },
|
||||
};
|
||||
#define DATA_REG_NAME_CNT (sizeof(data_registers) / sizeof(struct reg_name))
|
||||
#define DATA_REG_NAME_CNT \
|
||||
(sizeof (data_registers) / sizeof (struct reg_name))
|
||||
|
||||
static const struct reg_name address_registers[] =
|
||||
{
|
||||
@ -127,14 +128,16 @@ static const struct reg_name address_registers[] =
|
||||
{ "a2", 2 },
|
||||
{ "a3", 3 },
|
||||
};
|
||||
#define ADDRESS_REG_NAME_CNT (sizeof(address_registers) / sizeof(struct reg_name))
|
||||
#define ADDRESS_REG_NAME_CNT \
|
||||
(sizeof (address_registers) / sizeof (struct reg_name))
|
||||
|
||||
static const struct reg_name other_registers[] =
|
||||
{
|
||||
{ "mdr", 0 },
|
||||
{ "psw", 0 },
|
||||
};
|
||||
#define OTHER_REG_NAME_CNT (sizeof(other_registers) / sizeof(struct reg_name))
|
||||
#define OTHER_REG_NAME_CNT \
|
||||
(sizeof (other_registers) / sizeof (struct reg_name))
|
||||
|
||||
/* reg_name_search does a binary search of the given register table
|
||||
to see if "name" is a valid regiter name. Returns the register
|
||||
@ -167,7 +170,6 @@ reg_name_search (regs, regcount, name)
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/* Summary of register_name().
|
||||
*
|
||||
* in: Input_line_pointer points to 1st char of operand.
|
||||
@ -178,6 +180,7 @@ reg_name_search (regs, regcount, name)
|
||||
* Input_line_pointer->(next non-blank) char after operand, or is in
|
||||
* its original state.
|
||||
*/
|
||||
|
||||
static boolean
|
||||
data_register_name (expressionP)
|
||||
expressionS *expressionP;
|
||||
@ -187,29 +190,34 @@ data_register_name (expressionP)
|
||||
char *start;
|
||||
char c;
|
||||
|
||||
/* Find the spelling of the operand */
|
||||
/* Find the spelling of the operand. */
|
||||
start = name = input_line_pointer;
|
||||
|
||||
c = get_symbol_end ();
|
||||
reg_number = reg_name_search (data_registers, DATA_REG_NAME_CNT, name);
|
||||
|
||||
/* look to see if it's in the register table */
|
||||
/* Look to see if it's in the register table. */
|
||||
if (reg_number >= 0)
|
||||
{
|
||||
expressionP->X_op = O_register;
|
||||
expressionP->X_add_number = reg_number;
|
||||
|
||||
/* make the rest nice */
|
||||
/* Make the rest nice. */
|
||||
expressionP->X_add_symbol = NULL;
|
||||
expressionP->X_op_symbol = NULL;
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* reset the line as if we had not done anything */
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
input_line_pointer = start; /* reset input_line pointer */
|
||||
/* Reset the line as if we had not done anything. */
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
|
||||
/* Reset input_line pointer. */
|
||||
input_line_pointer = start;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -224,6 +232,7 @@ data_register_name (expressionP)
|
||||
* Input_line_pointer->(next non-blank) char after operand, or is in
|
||||
* its original state.
|
||||
*/
|
||||
|
||||
static boolean
|
||||
address_register_name (expressionP)
|
||||
expressionS *expressionP;
|
||||
@ -233,29 +242,34 @@ address_register_name (expressionP)
|
||||
char *start;
|
||||
char c;
|
||||
|
||||
/* Find the spelling of the operand */
|
||||
/* Find the spelling of the operand. */
|
||||
start = name = input_line_pointer;
|
||||
|
||||
c = get_symbol_end ();
|
||||
reg_number = reg_name_search (address_registers, ADDRESS_REG_NAME_CNT, name);
|
||||
|
||||
/* look to see if it's in the register table */
|
||||
/* Look to see if it's in the register table. */
|
||||
if (reg_number >= 0)
|
||||
{
|
||||
expressionP->X_op = O_register;
|
||||
expressionP->X_add_number = reg_number;
|
||||
|
||||
/* make the rest nice */
|
||||
/* Make the rest nice. */
|
||||
expressionP->X_add_symbol = NULL;
|
||||
expressionP->X_op_symbol = NULL;
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* reset the line as if we had not done anything */
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
input_line_pointer = start; /* reset input_line pointer */
|
||||
/* Reset the line as if we had not done anything. */
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
|
||||
/* Reset input_line pointer. */
|
||||
input_line_pointer = start;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -270,6 +284,7 @@ address_register_name (expressionP)
|
||||
* Input_line_pointer->(next non-blank) char after operand, or is in
|
||||
* its original state.
|
||||
*/
|
||||
|
||||
static boolean
|
||||
other_register_name (expressionP)
|
||||
expressionS *expressionP;
|
||||
@ -279,29 +294,34 @@ other_register_name (expressionP)
|
||||
char *start;
|
||||
char c;
|
||||
|
||||
/* Find the spelling of the operand */
|
||||
/* Find the spelling of the operand. */
|
||||
start = name = input_line_pointer;
|
||||
|
||||
c = get_symbol_end ();
|
||||
reg_number = reg_name_search (other_registers, OTHER_REG_NAME_CNT, name);
|
||||
|
||||
/* look to see if it's in the register table */
|
||||
/* Look to see if it's in the register table. */
|
||||
if (reg_number >= 0)
|
||||
{
|
||||
expressionP->X_op = O_register;
|
||||
expressionP->X_add_number = reg_number;
|
||||
|
||||
/* make the rest nice */
|
||||
/* Make the rest nice. */
|
||||
expressionP->X_add_symbol = NULL;
|
||||
expressionP->X_op_symbol = NULL;
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* reset the line as if we had not done anything */
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
input_line_pointer = start; /* reset input_line pointer */
|
||||
/* Reset the line as if we had not done anything. */
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
|
||||
/* Reset input_line pointer. */
|
||||
input_line_pointer = start;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -310,7 +330,7 @@ void
|
||||
md_show_usage (stream)
|
||||
FILE *stream;
|
||||
{
|
||||
fprintf(stream, _("MN10200 options:\n\
|
||||
fprintf (stream, _("MN10200 options:\n\
|
||||
none yet\n"));
|
||||
}
|
||||
|
||||
@ -370,7 +390,6 @@ md_atof (type, litp, sizep)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
md_convert_frag (abfd, sec, fragP)
|
||||
bfd *abfd;
|
||||
@ -737,7 +756,7 @@ md_begin ()
|
||||
char *prev_name = "";
|
||||
register const struct mn10200_opcode *op;
|
||||
|
||||
mn10200_hash = hash_new();
|
||||
mn10200_hash = hash_new ();
|
||||
|
||||
/* Insert unique names into hash table. The MN10200 instruction set
|
||||
has many identical opcode names that have different opcodes based
|
||||
@ -776,13 +795,13 @@ md_assemble (str)
|
||||
int match;
|
||||
|
||||
/* Get the opcode. */
|
||||
for (s = str; *s != '\0' && ! isspace (*s); s++)
|
||||
for (s = str; *s != '\0' && !isspace (*s); s++)
|
||||
;
|
||||
if (*s != '\0')
|
||||
*s++ = '\0';
|
||||
|
||||
/* find the first opcode with the proper name */
|
||||
opcode = (struct mn10200_opcode *)hash_find (mn10200_hash, str);
|
||||
/* Find the first opcode with the proper name. */
|
||||
opcode = (struct mn10200_opcode *) hash_find (mn10200_hash, str);
|
||||
if (opcode == NULL)
|
||||
{
|
||||
as_bad (_("Unrecognized opcode: `%s'"), str);
|
||||
@ -795,7 +814,7 @@ md_assemble (str)
|
||||
|
||||
input_line_pointer = str;
|
||||
|
||||
for(;;)
|
||||
for (;;)
|
||||
{
|
||||
const char *errmsg = NULL;
|
||||
int op_idx;
|
||||
@ -963,7 +982,7 @@ md_assemble (str)
|
||||
then promote it (ie this opcode does not match). */
|
||||
if (operand->flags
|
||||
& (MN10200_OPERAND_PROMOTE | MN10200_OPERAND_RELAX)
|
||||
&& ! check_operand (insn, operand, ex.X_add_number))
|
||||
&& !check_operand (insn, operand, ex.X_add_number))
|
||||
{
|
||||
input_line_pointer = hold;
|
||||
str = hold;
|
||||
@ -1012,7 +1031,7 @@ keep_going:
|
||||
if (match == 0)
|
||||
{
|
||||
next_opcode = opcode + 1;
|
||||
if (!strcmp(next_opcode->name, opcode->name))
|
||||
if (!strcmp (next_opcode->name, opcode->name))
|
||||
{
|
||||
opcode = next_opcode;
|
||||
continue;
|
||||
@ -1130,15 +1149,16 @@ keep_going:
|
||||
int offset;
|
||||
fixS *fixP;
|
||||
|
||||
reloc_howto = bfd_reloc_type_lookup (stdoutput, fixups[i].reloc);
|
||||
reloc_howto = bfd_reloc_type_lookup (stdoutput,
|
||||
fixups[i].reloc);
|
||||
|
||||
if (!reloc_howto)
|
||||
abort();
|
||||
abort ();
|
||||
|
||||
size = bfd_get_reloc_size (reloc_howto);
|
||||
|
||||
if (size < 1 || size > 4)
|
||||
abort();
|
||||
abort ();
|
||||
|
||||
offset = 4 - size;
|
||||
fixP = fix_new_exp (frag_now, f - frag_now->fr_literal + offset,
|
||||
@ -1147,8 +1167,9 @@ keep_going:
|
||||
reloc_howto->pc_relative,
|
||||
fixups[i].reloc);
|
||||
|
||||
/* PC-relative offsets are from the first byte of the next
|
||||
instruction, not from the start of the current instruction. */
|
||||
/* PC-relative offsets are from the first byte of the
|
||||
next instruction, not from the start of the current
|
||||
instruction. */
|
||||
if (reloc_howto->pc_relative)
|
||||
fixP->fx_offset += size;
|
||||
}
|
||||
@ -1167,7 +1188,6 @@ keep_going:
|
||||
/* Is the reloc pc-relative? */
|
||||
pcrel = (operand->flags & MN10200_OPERAND_PCREL) != 0;
|
||||
|
||||
|
||||
/* Choose a proper BFD relocation type. */
|
||||
if (pcrel)
|
||||
{
|
||||
@ -1192,7 +1212,8 @@ keep_going:
|
||||
abort ();
|
||||
}
|
||||
|
||||
/* Convert the size of the reloc into what fix_new_exp wants. */
|
||||
/* Convert the size of the reloc into what fix_new_exp
|
||||
wants. */
|
||||
reloc_size = reloc_size / 8;
|
||||
if (reloc_size == 8)
|
||||
reloc_size = 0;
|
||||
@ -1205,8 +1226,9 @@ keep_going:
|
||||
reloc_size, &fixups[i].exp, pcrel,
|
||||
((bfd_reloc_code_real_type) reloc));
|
||||
|
||||
/* PC-relative offsets are from the first byte of the next
|
||||
instruction, not from the start of the current instruction. */
|
||||
/* PC-relative offsets are from the first byte of the
|
||||
next instruction, not from the start of the current
|
||||
instruction. */
|
||||
if (pcrel)
|
||||
fixP->fx_offset += size;
|
||||
}
|
||||
@ -1214,9 +1236,8 @@ keep_going:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* if while processing a fixup, a reloc really needs to be created */
|
||||
/* then it is done here */
|
||||
/* If while processing a fixup, a reloc really needs to be created
|
||||
Then it is done here. */
|
||||
|
||||
arelent *
|
||||
tc_gen_reloc (seg, fixp)
|
||||
@ -1231,7 +1252,7 @@ tc_gen_reloc (seg, fixp)
|
||||
{
|
||||
as_bad_where (fixp->fx_file, fixp->fx_line,
|
||||
_("reloc %d not supported by object file format"),
|
||||
(int)fixp->fx_r_type);
|
||||
(int) fixp->fx_r_type);
|
||||
return NULL;
|
||||
}
|
||||
reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
|
||||
@ -1294,7 +1315,7 @@ md_pcrel_from (fixp)
|
||||
{
|
||||
return fixp->fx_frag->fr_address;
|
||||
#if 0
|
||||
if (fixp->fx_addsy != (symbolS *) NULL && ! S_IS_DEFINED (fixp->fx_addsy))
|
||||
if (fixp->fx_addsy != (symbolS *) NULL && !S_IS_DEFINED (fixp->fx_addsy))
|
||||
{
|
||||
/* The symbol is undefined. Let the linker figure it out. */
|
||||
return 0;
|
||||
@ -1347,7 +1368,6 @@ mn10200_insert_operand (insnp, extensionp, operand, val, file, line, shift)
|
||||
|
||||
test = val;
|
||||
|
||||
|
||||
if (test < (offsetT) min || test > (offsetT) max)
|
||||
{
|
||||
const char *err =
|
||||
@ -1404,7 +1424,6 @@ check_operand (insn, operand, val)
|
||||
|
||||
test = val;
|
||||
|
||||
|
||||
if (test < (offsetT) min || test > (offsetT) max)
|
||||
return 0;
|
||||
else
|
||||
|
@ -34,7 +34,8 @@ struct reg_name
|
||||
|
||||
struct dwarf2_line_info debug_line;
|
||||
|
||||
/* Generic assembler global variables which must be defined by all targets. */
|
||||
/* Generic assembler global variables which must be defined by all
|
||||
targets. */
|
||||
|
||||
/* Characters which always start a comment. */
|
||||
const char comment_chars[] = "#";
|
||||
@ -54,7 +55,6 @@ const char EXP_CHARS[] = "eE";
|
||||
as in 0d1.0. */
|
||||
const char FLT_CHARS[] = "dD";
|
||||
|
||||
|
||||
const relax_typeS md_relax_table[] = {
|
||||
/* bCC relaxing */
|
||||
{0x7f, -0x80, 2, 1},
|
||||
@ -81,7 +81,7 @@ const relax_typeS md_relax_table[] = {
|
||||
|
||||
};
|
||||
|
||||
/* local functions */
|
||||
/* Local functions. */
|
||||
static void mn10300_insert_operand PARAMS ((unsigned long *, unsigned long *,
|
||||
const struct mn10300_operand *,
|
||||
offsetT, char *, unsigned,
|
||||
@ -97,7 +97,7 @@ static void set_arch_mach PARAMS ((int));
|
||||
|
||||
static int current_machine;
|
||||
|
||||
/* fixups */
|
||||
/* Fixups. */
|
||||
#define MAX_INSN_FIXUPS (5)
|
||||
struct mn10300_fixup
|
||||
{
|
||||
@ -116,7 +116,7 @@ const char *md_shortopts = "";
|
||||
struct option md_longopts[] = {
|
||||
{NULL, no_argument, NULL, 0}
|
||||
};
|
||||
size_t md_longopts_size = sizeof(md_longopts);
|
||||
size_t md_longopts_size = sizeof (md_longopts);
|
||||
|
||||
/* The target specific pseudo-ops which we support. */
|
||||
const pseudo_typeS md_pseudo_table[] =
|
||||
@ -143,7 +143,8 @@ static const struct reg_name data_registers[] =
|
||||
{ "d2", 2 },
|
||||
{ "d3", 3 },
|
||||
};
|
||||
#define DATA_REG_NAME_CNT (sizeof(data_registers) / sizeof(struct reg_name))
|
||||
#define DATA_REG_NAME_CNT \
|
||||
(sizeof (data_registers) / sizeof (struct reg_name))
|
||||
|
||||
static const struct reg_name address_registers[] =
|
||||
{
|
||||
@ -152,7 +153,9 @@ static const struct reg_name address_registers[] =
|
||||
{ "a2", 2 },
|
||||
{ "a3", 3 },
|
||||
};
|
||||
#define ADDRESS_REG_NAME_CNT (sizeof(address_registers) / sizeof(struct reg_name))
|
||||
|
||||
#define ADDRESS_REG_NAME_CNT \
|
||||
(sizeof (address_registers) / sizeof (struct reg_name))
|
||||
|
||||
static const struct reg_name r_registers[] =
|
||||
{
|
||||
@ -197,7 +200,9 @@ static const struct reg_name r_registers[] =
|
||||
{ "r8", 8 },
|
||||
{ "r9", 9 },
|
||||
};
|
||||
#define R_REG_NAME_CNT (sizeof(r_registers) / sizeof(struct reg_name))
|
||||
|
||||
#define R_REG_NAME_CNT \
|
||||
(sizeof (r_registers) / sizeof (struct reg_name))
|
||||
|
||||
static const struct reg_name xr_registers[] =
|
||||
{
|
||||
@ -223,8 +228,9 @@ static const struct reg_name xr_registers[] =
|
||||
{ "xr8", 8 },
|
||||
{ "xr9", 9 },
|
||||
};
|
||||
#define XR_REG_NAME_CNT (sizeof(xr_registers) / sizeof(struct reg_name))
|
||||
|
||||
#define XR_REG_NAME_CNT \
|
||||
(sizeof (xr_registers) / sizeof (struct reg_name))
|
||||
|
||||
static const struct reg_name other_registers[] =
|
||||
{
|
||||
@ -232,7 +238,9 @@ static const struct reg_name other_registers[] =
|
||||
{ "psw", 0 },
|
||||
{ "sp", 0 },
|
||||
};
|
||||
#define OTHER_REG_NAME_CNT (sizeof(other_registers) / sizeof(struct reg_name))
|
||||
|
||||
#define OTHER_REG_NAME_CNT \
|
||||
(sizeof (other_registers) / sizeof (struct reg_name))
|
||||
|
||||
/* reg_name_search does a binary search of the given register table
|
||||
to see if "name" is a valid regiter name. Returns the register
|
||||
@ -265,7 +273,6 @@ reg_name_search (regs, regcount, name)
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/* Summary of register_name().
|
||||
*
|
||||
* in: Input_line_pointer points to 1st char of operand.
|
||||
@ -276,6 +283,7 @@ reg_name_search (regs, regcount, name)
|
||||
* Input_line_pointer->(next non-blank) char after operand, or is in
|
||||
* its original state.
|
||||
*/
|
||||
|
||||
static boolean
|
||||
r_register_name (expressionP)
|
||||
expressionS *expressionP;
|
||||
@ -285,29 +293,34 @@ r_register_name (expressionP)
|
||||
char *start;
|
||||
char c;
|
||||
|
||||
/* Find the spelling of the operand */
|
||||
/* Find the spelling of the operand. */
|
||||
start = name = input_line_pointer;
|
||||
|
||||
c = get_symbol_end ();
|
||||
reg_number = reg_name_search (r_registers, R_REG_NAME_CNT, name);
|
||||
|
||||
/* look to see if it's in the register table */
|
||||
/* Look to see if it's in the register table. */
|
||||
if (reg_number >= 0)
|
||||
{
|
||||
expressionP->X_op = O_register;
|
||||
expressionP->X_add_number = reg_number;
|
||||
|
||||
/* make the rest nice */
|
||||
/* Make the rest nice. */
|
||||
expressionP->X_add_symbol = NULL;
|
||||
expressionP->X_op_symbol = NULL;
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* reset the line as if we had not done anything */
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
input_line_pointer = start; /* reset input_line pointer */
|
||||
/* Reset the line as if we had not done anything. */
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
|
||||
/* Reset input_line pointer. */
|
||||
input_line_pointer = start;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -322,6 +335,7 @@ r_register_name (expressionP)
|
||||
* Input_line_pointer->(next non-blank) char after operand, or is in
|
||||
* its original state.
|
||||
*/
|
||||
|
||||
static boolean
|
||||
xr_register_name (expressionP)
|
||||
expressionS *expressionP;
|
||||
@ -331,29 +345,34 @@ xr_register_name (expressionP)
|
||||
char *start;
|
||||
char c;
|
||||
|
||||
/* Find the spelling of the operand */
|
||||
/* Find the spelling of the operand. */
|
||||
start = name = input_line_pointer;
|
||||
|
||||
c = get_symbol_end ();
|
||||
reg_number = reg_name_search (xr_registers, XR_REG_NAME_CNT, name);
|
||||
|
||||
/* look to see if it's in the register table */
|
||||
/* Look to see if it's in the register table. */
|
||||
if (reg_number >= 0)
|
||||
{
|
||||
expressionP->X_op = O_register;
|
||||
expressionP->X_add_number = reg_number;
|
||||
|
||||
/* make the rest nice */
|
||||
/* Make the rest nice. */
|
||||
expressionP->X_add_symbol = NULL;
|
||||
expressionP->X_op_symbol = NULL;
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* reset the line as if we had not done anything */
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
input_line_pointer = start; /* reset input_line pointer */
|
||||
/* Reset the line as if we had not done anything. */
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
|
||||
/* Reset input_line pointer. */
|
||||
input_line_pointer = start;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -368,6 +387,7 @@ xr_register_name (expressionP)
|
||||
* Input_line_pointer->(next non-blank) char after operand, or is in
|
||||
* its original state.
|
||||
*/
|
||||
|
||||
static boolean
|
||||
data_register_name (expressionP)
|
||||
expressionS *expressionP;
|
||||
@ -377,29 +397,34 @@ data_register_name (expressionP)
|
||||
char *start;
|
||||
char c;
|
||||
|
||||
/* Find the spelling of the operand */
|
||||
/* Find the spelling of the operand. */
|
||||
start = name = input_line_pointer;
|
||||
|
||||
c = get_symbol_end ();
|
||||
reg_number = reg_name_search (data_registers, DATA_REG_NAME_CNT, name);
|
||||
|
||||
/* look to see if it's in the register table */
|
||||
/* Look to see if it's in the register table. */
|
||||
if (reg_number >= 0)
|
||||
{
|
||||
expressionP->X_op = O_register;
|
||||
expressionP->X_add_number = reg_number;
|
||||
|
||||
/* make the rest nice */
|
||||
/* Make the rest nice. */
|
||||
expressionP->X_add_symbol = NULL;
|
||||
expressionP->X_op_symbol = NULL;
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* reset the line as if we had not done anything */
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
input_line_pointer = start; /* reset input_line pointer */
|
||||
/* Reset the line as if we had not done anything. */
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
|
||||
/* Reset input_line pointer. */
|
||||
input_line_pointer = start;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -414,6 +439,7 @@ data_register_name (expressionP)
|
||||
* Input_line_pointer->(next non-blank) char after operand, or is in
|
||||
* its original state.
|
||||
*/
|
||||
|
||||
static boolean
|
||||
address_register_name (expressionP)
|
||||
expressionS *expressionP;
|
||||
@ -423,29 +449,35 @@ address_register_name (expressionP)
|
||||
char *start;
|
||||
char c;
|
||||
|
||||
/* Find the spelling of the operand */
|
||||
/* Find the spelling of the operand. */
|
||||
start = name = input_line_pointer;
|
||||
|
||||
c = get_symbol_end ();
|
||||
reg_number = reg_name_search (address_registers, ADDRESS_REG_NAME_CNT, name);
|
||||
|
||||
/* look to see if it's in the register table */
|
||||
/* Look to see if it's in the register table. */
|
||||
if (reg_number >= 0)
|
||||
{
|
||||
expressionP->X_op = O_register;
|
||||
expressionP->X_add_number = reg_number;
|
||||
|
||||
/* make the rest nice */
|
||||
/* Make the rest nice. */
|
||||
expressionP->X_add_symbol = NULL;
|
||||
expressionP->X_op_symbol = NULL;
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* reset the line as if we had not done anything */
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
input_line_pointer = start; /* reset input_line pointer */
|
||||
/* Reset the line as if we had not done anything. */
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
|
||||
/* Reset input_line pointer. */
|
||||
input_line_pointer = start;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -460,6 +492,7 @@ address_register_name (expressionP)
|
||||
* Input_line_pointer->(next non-blank) char after operand, or is in
|
||||
* its original state.
|
||||
*/
|
||||
|
||||
static boolean
|
||||
other_register_name (expressionP)
|
||||
expressionS *expressionP;
|
||||
@ -469,29 +502,34 @@ other_register_name (expressionP)
|
||||
char *start;
|
||||
char c;
|
||||
|
||||
/* Find the spelling of the operand */
|
||||
/* Find the spelling of the operand. */
|
||||
start = name = input_line_pointer;
|
||||
|
||||
c = get_symbol_end ();
|
||||
reg_number = reg_name_search (other_registers, OTHER_REG_NAME_CNT, name);
|
||||
|
||||
/* look to see if it's in the register table */
|
||||
/* Look to see if it's in the register table. */
|
||||
if (reg_number >= 0)
|
||||
{
|
||||
expressionP->X_op = O_register;
|
||||
expressionP->X_add_number = reg_number;
|
||||
|
||||
/* make the rest nice */
|
||||
/* Make the rest nice. */
|
||||
expressionP->X_add_symbol = NULL;
|
||||
expressionP->X_op_symbol = NULL;
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* reset the line as if we had not done anything */
|
||||
*input_line_pointer = c; /* put back the delimiting char */
|
||||
input_line_pointer = start; /* reset input_line pointer */
|
||||
/* Reset the line as if we had not done anything. */
|
||||
/* Put back the delimiting char. */
|
||||
*input_line_pointer = c;
|
||||
|
||||
/* Reset input_line pointer. */
|
||||
input_line_pointer = start;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -500,7 +538,7 @@ void
|
||||
md_show_usage (stream)
|
||||
FILE *stream;
|
||||
{
|
||||
fprintf(stream, _("MN10300 options:\n\
|
||||
fprintf (stream, _("MN10300 options:\n\
|
||||
none yet\n"));
|
||||
}
|
||||
|
||||
@ -560,7 +598,6 @@ md_atof (type, litp, sizep)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
md_convert_frag (abfd, sec, fragP)
|
||||
bfd *abfd;
|
||||
@ -863,7 +900,7 @@ md_begin ()
|
||||
char *prev_name = "";
|
||||
register const struct mn10300_opcode *op;
|
||||
|
||||
mn10300_hash = hash_new();
|
||||
mn10300_hash = hash_new ();
|
||||
|
||||
/* Insert unique names into hash table. The MN10300 instruction set
|
||||
has many identical opcode names that have different opcodes based
|
||||
@ -908,13 +945,13 @@ md_assemble (str)
|
||||
int match;
|
||||
|
||||
/* Get the opcode. */
|
||||
for (s = str; *s != '\0' && ! isspace (*s); s++)
|
||||
for (s = str; *s != '\0' && !isspace (*s); s++)
|
||||
;
|
||||
if (*s != '\0')
|
||||
*s++ = '\0';
|
||||
|
||||
/* find the first opcode with the proper name */
|
||||
opcode = (struct mn10300_opcode *)hash_find (mn10300_hash, str);
|
||||
/* Find the first opcode with the proper name. */
|
||||
opcode = (struct mn10300_opcode *) hash_find (mn10300_hash, str);
|
||||
if (opcode == NULL)
|
||||
{
|
||||
as_bad (_("Unrecognized opcode: `%s'"), str);
|
||||
@ -927,14 +964,13 @@ md_assemble (str)
|
||||
|
||||
input_line_pointer = str;
|
||||
|
||||
for(;;)
|
||||
for (;;)
|
||||
{
|
||||
const char *errmsg;
|
||||
int op_idx;
|
||||
char *hold;
|
||||
int extra_shift = 0;
|
||||
|
||||
|
||||
errmsg = _("Invalid opcode/operands");
|
||||
|
||||
/* Reset the array of register operands. */
|
||||
@ -1174,8 +1210,8 @@ md_assemble (str)
|
||||
input_line_pointer++;
|
||||
|
||||
/* We used to reject a null register list here; however,
|
||||
we accept it now so the compiler can emit "call" instructions
|
||||
for all calls to named functions.
|
||||
we accept it now so the compiler can emit "call"
|
||||
instructions for all calls to named functions.
|
||||
|
||||
The linker can then fill in the appropriate bits for the
|
||||
register list and stack size or change the instruction
|
||||
@ -1336,7 +1372,6 @@ md_assemble (str)
|
||||
ex.X_add_number, (char *) NULL,
|
||||
0, extra_shift);
|
||||
|
||||
|
||||
/* And note the register number in the register array. */
|
||||
mn10300_reg_operands[op_idx - 1] = ex.X_add_number;
|
||||
break;
|
||||
@ -1348,7 +1383,7 @@ md_assemble (str)
|
||||
then promote it (ie this opcode does not match). */
|
||||
if (operand->flags
|
||||
& (MN10300_OPERAND_PROMOTE | MN10300_OPERAND_RELAX)
|
||||
&& ! check_operand (insn, operand, ex.X_add_number))
|
||||
&& !check_operand (insn, operand, ex.X_add_number))
|
||||
{
|
||||
input_line_pointer = hold;
|
||||
str = hold;
|
||||
@ -1426,7 +1461,7 @@ keep_going:
|
||||
if (match == 0)
|
||||
{
|
||||
next_opcode = opcode + 1;
|
||||
if (!strcmp(next_opcode->name, opcode->name))
|
||||
if (!strcmp (next_opcode->name, opcode->name))
|
||||
{
|
||||
opcode = next_opcode;
|
||||
continue;
|
||||
@ -1619,13 +1654,15 @@ keep_going:
|
||||
else if (opcode->format == FMT_D4)
|
||||
{
|
||||
unsigned long temp = ((insn & 0xffff) << 16) | (extension & 0xffff);
|
||||
|
||||
number_to_chars_bigendian (f, (insn >> 16) & 0xffff, 2);
|
||||
number_to_chars_littleendian (f + 2, temp, 4);
|
||||
}
|
||||
else if (opcode->format == FMT_D5)
|
||||
{
|
||||
unsigned long temp = ((insn & 0xffff) << 16)
|
||||
| ((extension >> 8) & 0xffff);
|
||||
unsigned long temp = (((insn & 0xffff) << 16)
|
||||
| ((extension >> 8) & 0xffff));
|
||||
|
||||
number_to_chars_bigendian (f, (insn >> 16) & 0xffff, 2);
|
||||
number_to_chars_littleendian (f + 2, temp, 4);
|
||||
number_to_chars_bigendian (f + 6, extension & 0xff, 1);
|
||||
@ -1633,6 +1670,7 @@ keep_going:
|
||||
else if (opcode->format == FMT_D8)
|
||||
{
|
||||
unsigned long temp = ((insn & 0xff) << 16) | (extension & 0xffff);
|
||||
|
||||
number_to_chars_bigendian (f, (insn >> 8) & 0xffffff, 3);
|
||||
number_to_chars_bigendian (f + 3, (temp & 0xff), 1);
|
||||
number_to_chars_littleendian (f + 4, temp >> 8, 2);
|
||||
@ -1640,6 +1678,7 @@ keep_going:
|
||||
else if (opcode->format == FMT_D9)
|
||||
{
|
||||
unsigned long temp = ((insn & 0xff) << 24) | (extension & 0xffffff);
|
||||
|
||||
number_to_chars_bigendian (f, (insn >> 8) & 0xffffff, 3);
|
||||
number_to_chars_littleendian (f + 3, temp, 4);
|
||||
}
|
||||
@ -1657,15 +1696,16 @@ keep_going:
|
||||
int offset;
|
||||
fixS *fixP;
|
||||
|
||||
reloc_howto = bfd_reloc_type_lookup (stdoutput, fixups[i].reloc);
|
||||
reloc_howto = bfd_reloc_type_lookup (stdoutput,
|
||||
fixups[i].reloc);
|
||||
|
||||
if (!reloc_howto)
|
||||
abort();
|
||||
abort ();
|
||||
|
||||
size = bfd_get_reloc_size (reloc_howto);
|
||||
|
||||
if (size < 1 || size > 4)
|
||||
abort();
|
||||
abort ();
|
||||
|
||||
offset = 4 - size;
|
||||
fixP = fix_new_exp (frag_now, f - frag_now->fr_literal + offset,
|
||||
@ -1769,9 +1809,8 @@ keep_going:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* if while processing a fixup, a reloc really needs to be created */
|
||||
/* then it is done here */
|
||||
/* If while processing a fixup, a reloc really needs to be created
|
||||
then it is done here. */
|
||||
|
||||
arelent *
|
||||
tc_gen_reloc (seg, fixp)
|
||||
@ -1786,7 +1825,7 @@ tc_gen_reloc (seg, fixp)
|
||||
{
|
||||
as_bad_where (fixp->fx_file, fixp->fx_line,
|
||||
_("reloc %d not supported by object file format"),
|
||||
(int)fixp->fx_r_type);
|
||||
(int) fixp->fx_r_type);
|
||||
return NULL;
|
||||
}
|
||||
reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
|
||||
@ -1808,7 +1847,7 @@ tc_gen_reloc (seg, fixp)
|
||||
}
|
||||
else
|
||||
{
|
||||
reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof( asymbol *));
|
||||
reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
|
||||
*reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
|
||||
reloc->addend = fixp->fx_offset;
|
||||
}
|
||||
@ -1865,7 +1904,7 @@ md_pcrel_from (fixp)
|
||||
{
|
||||
return fixp->fx_frag->fr_address;
|
||||
#if 0
|
||||
if (fixp->fx_addsy != (symbolS *) NULL && ! S_IS_DEFINED (fixp->fx_addsy))
|
||||
if (fixp->fx_addsy != (symbolS *) NULL && !S_IS_DEFINED (fixp->fx_addsy))
|
||||
{
|
||||
/* The symbol is undefined. Let the linker figure it out. */
|
||||
return 0;
|
||||
@ -1924,7 +1963,6 @@ mn10300_insert_operand (insnp, extensionp, operand, val, file, line, shift)
|
||||
|
||||
test = val;
|
||||
|
||||
|
||||
if (test < (offsetT) min || test > (offsetT) max)
|
||||
{
|
||||
const char *err =
|
||||
@ -2003,7 +2041,6 @@ check_operand (insn, operand, val)
|
||||
|
||||
test = val;
|
||||
|
||||
|
||||
if (test < (offsetT) min || test > (offsetT) max)
|
||||
return 0;
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user