aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2000-07-17 21:06:14 +0000
committerNick Clifton <nickc@redhat.com>2000-07-17 21:06:14 +0000
commit87271fa61d733cb39bbe38ec286d0d25f58f51dc (patch)
tree2f4050f124292cc7eff758ffea22e376e0121988 /gas
parent8098403c531f0dcc9a3ca611f3a8a7b4679d4b4c (diff)
downloadgdb-87271fa61d733cb39bbe38ec286d0d25f58f51dc.zip
gdb-87271fa61d733cb39bbe38ec286d0d25f58f51dc.tar.gz
gdb-87271fa61d733cb39bbe38ec286d0d25f58f51dc.tar.bz2
Fix formatting.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog2
-rw-r--r--gas/config/tc-mn10200.c245
-rw-r--r--gas/config/tc-mn10300.c341
3 files changed, 323 insertions, 265 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 05ddfb4..6accdbb 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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>
diff --git a/gas/config/tc-mn10200.c b/gas/config/tc-mn10200.c
index 264f7bf..5d4bb60 100644
--- a/gas/config/tc-mn10200.c
+++ b/gas/config/tc-mn10200.c
@@ -21,7 +21,7 @@
#include <stdio.h>
#include <ctype.h>
#include "as.h"
-#include "subsegs.h"
+#include "subsegs.h"
#include "opcode/mn10200.h"
/* Structure to hold information about predefined registers. */
@@ -31,46 +31,47 @@ 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. */
+/* Characters which always start a comment. */
const char comment_chars[] = "#";
/* Characters which start a comment at the beginning of a line. */
const char line_comment_chars[] = ";#";
-/* Characters which may be used to separate multiple commands on a
+/* Characters which may be used to separate multiple commands on a
single line. */
const char line_separator_chars[] = ";";
-/* Characters which are used to indicate an exponent in a floating
+/* Characters which are used to indicate an exponent in a floating
point number. */
const char EXP_CHARS[] = "eE";
-/* Characters which mean that a number is a floating point constant,
+/* Characters which mean that a number is a floating point constant,
as in 0d1.0. */
const char FLT_CHARS[] = "dD";
-
const relax_typeS md_relax_table[] = {
- /* bCC relaxing */
+ /* bCC relaxing */
{0x81, -0x7e, 2, 1},
{0x8004, -0x7ffb, 5, 2},
{0x800006, -0x7ffff9, 7, 0},
- /* bCCx relaxing */
+ /* bCCx relaxing */
{0x81, -0x7e, 3, 4},
{0x8004, -0x7ffb, 6, 5},
{0x800006, -0x7ffff9, 8, 0},
- /* jsr relaxing */
+ /* jsr relaxing */
{0x8004, -0x7ffb, 3, 7},
{0x800006, -0x7ffff9, 5, 0},
- /* jmp relaxing */
+ /* jmp relaxing */
{0x81, -0x7e, 2, 9},
{0x8004, -0x7ffb, 3, 10},
{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[] =
@@ -110,7 +110,7 @@ const pseudo_typeS md_pseudo_table[] =
/* Opcode hash table. */
static struct hash_control *mn10200_hash;
-/* This table is sorted. Suitable for searching by a binary search. */
+/* This table is sorted. Suitable for searching by a binary search. */
static const struct reg_name data_registers[] =
{
{ "d0", 0 },
@@ -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,18 +128,20 @@ 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
- number from the array on success, or -1 on failure. */
+ number from the array on success, or -1 on failure. */
static int
reg_name_search (regs, regcount, name)
@@ -160,14 +163,13 @@ reg_name_search (regs, regcount, name)
high = middle - 1;
else if (cmp > 0)
low = middle + 1;
- else
- return regs[middle].value;
+ else
+ return regs[middle].value;
}
while (low <= high);
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 */
- if (reg_number >= 0)
+ /* 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 */
- if (reg_number >= 0)
+ /* 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,40 +294,45 @@ 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 */
- if (reg_number >= 0)
+ /* 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;
}
}
void
md_show_usage (stream)
- FILE *stream;
+ FILE *stream;
{
- fprintf(stream, _("MN10200 options:\n\
+ fprintf (stream, _("MN10200 options:\n\
none yet\n"));
-}
+}
int
md_parse_option (c, arg)
@@ -324,16 +344,16 @@ md_parse_option (c, arg)
symbolS *
md_undefined_symbol (name)
- char *name;
+ char *name;
{
return 0;
}
char *
md_atof (type, litp, sizep)
- int type;
- char *litp;
- int *sizep;
+ int type;
+ char *litp;
+ int *sizep;
{
int prec;
LITTLENUM_TYPE words[4];
@@ -354,7 +374,7 @@ md_atof (type, litp, sizep)
*sizep = 0;
return _("bad call to md_atof");
}
-
+
t = atof_ieee (input_line_pointer, type, words);
if (t)
input_line_pointer = t;
@@ -370,12 +390,11 @@ md_atof (type, litp, sizep)
return NULL;
}
-
void
md_convert_frag (abfd, sec, fragP)
- bfd *abfd;
- asection *sec;
- fragS *fragP;
+ bfd *abfd;
+ asection *sec;
+ fragS *fragP;
{
static unsigned long label_count = 0;
char buf[40];
@@ -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
@@ -747,7 +766,7 @@ md_begin ()
op = mn10200_opcodes;
while (op->name)
{
- if (strcmp (prev_name, op->name))
+ if (strcmp (prev_name, op->name))
{
prev_name = (char *) op->name;
hash_insert (mn10200_hash, op->name, (char *) op);
@@ -762,7 +781,7 @@ md_begin ()
}
void
-md_assemble (str)
+md_assemble (str)
char *str;
{
char *s;
@@ -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;
@@ -833,7 +852,7 @@ md_assemble (str)
if (operand->flags & MN10200_OPERAND_RELAX)
relaxable = 1;
- /* Gather the operand. */
+ /* Gather the operand. */
hold = input_line_pointer;
input_line_pointer = str;
@@ -926,7 +945,7 @@ md_assemble (str)
expression (&ex);
}
- switch (ex.X_op)
+ switch (ex.X_op)
{
case O_illegal:
errmsg = _("illegal operand");
@@ -936,13 +955,13 @@ md_assemble (str)
goto error;
case O_register:
if ((operand->flags
- & (MN10200_OPERAND_DREG | MN10200_OPERAND_AREG)) == 0)
+ & (MN10200_OPERAND_DREG | MN10200_OPERAND_AREG)) == 0)
{
input_line_pointer = hold;
str = hold;
goto error;
}
-
+
if (opcode->format == FMT_2 || opcode->format == FMT_5)
extra_shift = 8;
else if (opcode->format == FMT_3 || opcode->format == FMT_6
@@ -950,7 +969,7 @@ md_assemble (str)
extra_shift = 16;
else
extra_shift = 0;
-
+
mn10200_insert_operand (&insn, &extension, operand,
ex.X_add_number, (char *) NULL,
0, extra_shift);
@@ -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;
@@ -1010,20 +1029,20 @@ keep_going:
error:
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;
}
-
+
as_bad ("%s", errmsg);
return;
- }
+ }
break;
}
-
+
while (isspace (*str))
++str;
@@ -1044,14 +1063,14 @@ keep_going:
size = 5;
else
abort ();
-
+
/* Write out the instruction. */
if (relaxable && fc > 0)
{
int type;
- /* bCC */
+ /* bCC */
if (size == 2 && opcode->opcode != 0xfc0000)
{
/* Handle bra specially. Basically treat it like jmp so
@@ -1061,18 +1080,18 @@ keep_going:
It is also important to not treat it like other bCC
instructions since the long forms of bra is different
from other bCC instructions. */
- if (opcode->opcode == 0xea00)
- type = 8;
+ if (opcode->opcode == 0xea00)
+ type = 8;
else
type = 0;
}
- /* jsr */
+ /* jsr */
else if (size == 3 && opcode->opcode == 0xfd0000)
type = 6;
- /* jmp */
+ /* jmp */
else if (size == 3 && opcode->opcode == 0xfc0000)
type = 8;
- /* bCCx */
+ /* bCCx */
else
type = 3;
@@ -1130,25 +1149,27 @@ 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,
size,
- &fixups[i].exp,
+ &fixups[i].exp,
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,10 +1236,9 @@ 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)
asection *seg;
@@ -1230,8 +1251,8 @@ tc_gen_reloc (seg, fixp)
if (reloc->howto == (reloc_howto_type *) NULL)
{
as_bad_where (fixp->fx_file, fixp->fx_line,
- _("reloc %d not supported by object file format"),
- (int)fixp->fx_r_type);
+ _("reloc %d not supported by object file format"),
+ (int) fixp->fx_r_type);
return NULL;
}
reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
@@ -1249,7 +1270,7 @@ tc_gen_reloc (seg, fixp)
reloc->addend = (S_GET_VALUE (fixp->fx_addsy)
- S_GET_VALUE (fixp->fx_subsy) + fixp->fx_offset);
}
- else
+ else
{
reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
*reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
@@ -1286,7 +1307,7 @@ md_estimate_size_before_relax (fragp, seg)
}
return 2;
}
-}
+}
long
md_pcrel_from (fixp)
@@ -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;
@@ -1340,14 +1361,13 @@ mn10200_insert_operand (insnp, extensionp, operand, val, file, line, shift)
min = - (1 << (operand->bits - 1));
}
else
- {
- max = (1 << operand->bits) - 1;
- min = 0;
- }
+ {
+ max = (1 << operand->bits) - 1;
+ min = 0;
+ }
test = val;
-
if (test < (offsetT) min || test > (offsetT) max)
{
const char *err =
@@ -1397,14 +1417,13 @@ check_operand (insn, operand, val)
min = - (1 << (operand->bits - 1));
}
else
- {
- max = (1 << operand->bits) - 1;
- min = 0;
- }
+ {
+ max = (1 << operand->bits) - 1;
+ min = 0;
+ }
test = val;
-
if (test < (offsetT) min || test > (offsetT) max)
return 0;
else
diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c
index 9cbaf19..b701634 100644
--- a/gas/config/tc-mn10300.c
+++ b/gas/config/tc-mn10300.c
@@ -21,7 +21,7 @@
#include <stdio.h>
#include <ctype.h>
#include "as.h"
-#include "subsegs.h"
+#include "subsegs.h"
#include "opcode/mn10300.h"
#include "dwarf2dbg.h"
@@ -34,54 +34,54 @@ 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. */
+/* Characters which always start a comment. */
const char comment_chars[] = "#";
/* Characters which start a comment at the beginning of a line. */
const char line_comment_chars[] = ";#";
-/* Characters which may be used to separate multiple commands on a
+/* Characters which may be used to separate multiple commands on a
single line. */
const char line_separator_chars[] = ";";
-/* Characters which are used to indicate an exponent in a floating
+/* Characters which are used to indicate an exponent in a floating
point number. */
const char EXP_CHARS[] = "eE";
-/* Characters which mean that a number is a floating point constant,
+/* Characters which mean that a number is a floating point constant,
as in 0d1.0. */
const char FLT_CHARS[] = "dD";
-
const relax_typeS md_relax_table[] = {
- /* bCC relaxing */
+ /* bCC relaxing */
{0x7f, -0x80, 2, 1},
{0x7fff, -0x8000, 5, 2},
{0x7fffffff, -0x80000000, 7, 0},
- /* bCC relaxing (uncommon cases) */
+ /* bCC relaxing (uncommon cases) */
{0x7f, -0x80, 3, 4},
{0x7fff, -0x8000, 6, 5},
{0x7fffffff, -0x80000000, 8, 0},
- /* call relaxing */
+ /* call relaxing */
{0x7fff, -0x8000, 5, 7},
{0x7fffffff, -0x80000000, 7, 0},
- /* calls relaxing */
+ /* calls relaxing */
{0x7fff, -0x8000, 4, 9},
{0x7fffffff, -0x80000000, 6, 0},
- /* jmp relaxing */
+ /* jmp relaxing */
{0x7f, -0x80, 2, 11},
{0x7fff, -0x8000, 3, 12},
{0x7fffffff, -0x80000000, 5, 0},
};
-/* 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[] =
@@ -135,7 +135,7 @@ const pseudo_typeS md_pseudo_table[] =
/* Opcode hash table. */
static struct hash_control *mn10300_hash;
-/* This table is sorted. Suitable for searching by a binary search. */
+/* This table is sorted. Suitable for searching by a binary search. */
static const struct reg_name data_registers[] =
{
{ "d0", 0 },
@@ -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,11 +238,13 @@ 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
- number from the array on success, or -1 on failure. */
+ number from the array on success, or -1 on failure. */
static int
reg_name_search (regs, regcount, name)
@@ -258,14 +266,13 @@ reg_name_search (regs, regcount, name)
high = middle - 1;
else if (cmp > 0)
low = middle + 1;
- else
- return regs[middle].value;
+ else
+ return regs[middle].value;
}
while (low <= high);
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 */
- if (reg_number >= 0)
+ /* 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 */
- if (reg_number >= 0)
+ /* 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 */
- if (reg_number >= 0)
+ /* 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 */
- if (reg_number >= 0)
+ /* 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,40 +502,45 @@ 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 */
- if (reg_number >= 0)
+ /* 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;
}
}
void
md_show_usage (stream)
- FILE *stream;
+ FILE *stream;
{
- fprintf(stream, _("MN10300 options:\n\
+ fprintf (stream, _("MN10300 options:\n\
none yet\n"));
-}
+}
int
md_parse_option (c, arg)
@@ -514,16 +552,16 @@ md_parse_option (c, arg)
symbolS *
md_undefined_symbol (name)
- char *name;
+ char *name;
{
return 0;
}
char *
md_atof (type, litp, sizep)
- int type;
- char *litp;
- int *sizep;
+ int type;
+ char *litp;
+ int *sizep;
{
int prec;
LITTLENUM_TYPE words[4];
@@ -544,7 +582,7 @@ md_atof (type, litp, sizep)
*sizep = 0;
return "bad call to md_atof";
}
-
+
t = atof_ieee (input_line_pointer, type, words);
if (t)
input_line_pointer = t;
@@ -560,12 +598,11 @@ md_atof (type, litp, sizep)
return NULL;
}
-
void
md_convert_frag (abfd, sec, fragP)
- bfd *abfd;
- asection *sec;
- fragS *fragP;
+ bfd *abfd;
+ asection *sec;
+ fragS *fragP;
{
static unsigned long label_count = 0;
char buf[40];
@@ -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
@@ -873,7 +910,7 @@ md_begin ()
op = mn10300_opcodes;
while (op->name)
{
- if (strcmp (prev_name, op->name))
+ if (strcmp (prev_name, op->name))
{
prev_name = (char *) op->name;
hash_insert (mn10300_hash, op->name, (char *) op);
@@ -894,7 +931,7 @@ md_begin ()
}
void
-md_assemble (str)
+md_assemble (str)
char *str;
{
char *s;
@@ -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. */
@@ -977,7 +1013,7 @@ md_assemble (str)
if (operand->flags & MN10300_OPERAND_RELAX)
relaxable = 1;
- /* Gather the operand. */
+ /* Gather the operand. */
hold = input_line_pointer;
input_line_pointer = str;
@@ -1172,10 +1208,10 @@ md_assemble (str)
/* Eat the '['. */
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
@@ -1294,7 +1330,7 @@ md_assemble (str)
expression (&ex);
}
- switch (ex.X_op)
+ switch (ex.X_op)
{
case O_illegal:
errmsg = _("illegal operand");
@@ -1315,7 +1351,7 @@ md_assemble (str)
str = hold;
goto error;
}
-
+
if (opcode->format == FMT_D1 || opcode->format == FMT_S1)
extra_shift = 8;
else if (opcode->format == FMT_D2
@@ -1331,12 +1367,11 @@ md_assemble (str)
extra_shift = 8;
else
extra_shift = 0;
-
+
mn10300_insert_operand (&insn, &extension, operand,
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;
@@ -1424,20 +1459,20 @@ keep_going:
error:
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;
}
-
+
as_bad ("%s", errmsg);
return;
- }
+ }
break;
}
-
+
while (isspace (*str))
++str;
@@ -1486,7 +1521,7 @@ keep_going:
{
int type;
- /* bCC */
+ /* bCC */
if (size == 2)
{
/* Handle bra specially. Basically treat it like jmp so
@@ -1501,16 +1536,16 @@ keep_going:
else
type = 0;
}
- /* call */
+ /* call */
else if (size == 5)
- type = 6;
- /* calls */
+ type = 6;
+ /* calls */
else if (size == 4)
type = 8;
- /* jmp */
+ /* jmp */
else if (size == 3 && opcode->opcode == 0xcc0000)
type = 10;
- /* bCC (uncommon cases) */
+ /* bCC (uncommon cases) */
else
type = 3;
@@ -1518,7 +1553,7 @@ keep_going:
fixups[0].exp.X_add_symbol,
fixups[0].exp.X_add_number,
(char *)fixups[0].opindex);
-
+
/* This is pretty hokey. We basically just care about the
opcode, so we have to write out the first word big endian.
@@ -1619,29 +1654,33 @@ 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);
}
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);
+ 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);
}
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);
+ 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);
}
/* Create any fixups. */
@@ -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,
@@ -1692,7 +1732,7 @@ keep_going:
pcrel = (operand->flags & MN10300_OPERAND_PCREL) != 0;
/* Gross. This disgusting hack is to make sure we
- get the right offset for the 16/32 bit reloc in
+ get the right offset for the 16/32 bit reloc in
"call" instructions. Basically they're a pain
because the reloc isn't at the end of the instruction. */
if ((size == 5 || size == 7)
@@ -1707,7 +1747,7 @@ keep_going:
|| ((insn >> 16) & 0xffff) == 0xfe01
|| ((insn >> 16) & 0xffff) == 0xfe02))
size -= 1;
-
+
offset = size - reloc_size / 8;
/* Choose a proper BFD relocation type. */
@@ -1769,10 +1809,9 @@ 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)
asection *seg;
@@ -1785,15 +1824,15 @@ tc_gen_reloc (seg, fixp)
if (reloc->howto == (reloc_howto_type *) NULL)
{
as_bad_where (fixp->fx_file, fixp->fx_line,
- _("reloc %d not supported by object file format"),
- (int)fixp->fx_r_type);
+ _("reloc %d not supported by object file format"),
+ (int) fixp->fx_r_type);
return NULL;
}
reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
if (fixp->fx_addsy && fixp->fx_subsy)
{
-
+
if ((S_GET_SEGMENT (fixp->fx_addsy) != S_GET_SEGMENT (fixp->fx_subsy))
|| S_GET_SEGMENT (fixp->fx_addsy) == undefined_section)
{
@@ -1806,9 +1845,9 @@ tc_gen_reloc (seg, fixp)
reloc->addend = (S_GET_VALUE (fixp->fx_addsy)
- S_GET_VALUE (fixp->fx_subsy) + fixp->fx_offset);
}
- else
+ 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;
}
@@ -1857,7 +1896,7 @@ md_estimate_size_before_relax (fragp, seg)
else
return 2;
}
-}
+}
long
md_pcrel_from (fixp)
@@ -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;
@@ -1917,26 +1956,25 @@ mn10300_insert_operand (insnp, extensionp, operand, val, file, line, shift)
min = - (1 << (bits - 1));
}
else
- {
- max = (1 << bits) - 1;
- min = 0;
- }
+ {
+ max = (1 << bits) - 1;
+ min = 0;
+ }
test = val;
-
if (test < (offsetT) min || test > (offsetT) max)
- {
- const char *err =
- _("operand out of range (%s not between %ld and %ld)");
- char buf[100];
-
- sprint_value (buf, test);
- if (file == (char *) NULL)
- as_warn (err, buf, min, max);
- else
- as_warn_where (file, line, err, buf, min, max);
- }
+ {
+ const char *err =
+ _("operand out of range (%s not between %ld and %ld)");
+ char buf[100];
+
+ sprint_value (buf, test);
+ if (file == (char *) NULL)
+ as_warn (err, buf, min, max);
+ else
+ as_warn_where (file, line, err, buf, min, max);
+ }
}
if ((operand->flags & MN10300_OPERAND_SPLIT) != 0)
@@ -1996,14 +2034,13 @@ check_operand (insn, operand, val)
min = - (1 << (bits - 1));
}
else
- {
- max = (1 << bits) - 1;
- min = 0;
- }
+ {
+ max = (1 << bits) - 1;
+ min = 0;
+ }
test = val;
-
if (test < (offsetT) min || test > (offsetT) max)
return 0;
else