Fri Jan 7 11:14:07 1994 Stan Shebs (shebs@andros.cygnus.com)

* config/tc-mips.c (macro): Add a LOSING_COMPILER ifdef that
	splits the function.
	(macro2): New function, if LOSING_COMPILER defined.
This commit is contained in:
Stan Shebs 1994-01-07 19:18:16 +00:00
parent fbe3316aba
commit 917fae09f9
2 changed files with 51 additions and 0 deletions

View File

@ -1,3 +1,9 @@
Fri Jan 7 11:14:07 1994 Stan Shebs (shebs@andros.cygnus.com)
* config/tc-mips.c (macro): Add a LOSING_COMPILER ifdef that
splits the function.
(macro2): New function, if LOSING_COMPILER defined.
Fri Jan 7 09:38:25 1994 Steve Chamberlain (sac@cygnus.com)
* config/obj-coffbfd.c (fill_section): Don't ever fill past the

View File

@ -289,6 +289,9 @@ static void check_absolute_expr PARAMS ((struct mips_cl_insn * ip,
static void load_register PARAMS ((int *counter, int reg, expressionS * ep));
static void load_address PARAMS ((int *counter, int reg, expressionS *ep));
static void macro PARAMS ((struct mips_cl_insn * ip));
#ifdef LOSING_COMPILER
static void macro2 PARAMS ((struct mips_cl_insn * ip));
#endif
static void mips_ip PARAMS ((char *str, struct mips_cl_insn * ip));
static int my_getSmallExpression PARAMS ((expressionS * ep, char *str));
static void my_getExpression PARAMS ((expressionS * ep, char *str));
@ -3111,6 +3114,48 @@ macro (ip)
macro_build ((char *) NULL, &icnt, &offset_expr, s, "t,o(b)", treg + 1,
(int) BFD_RELOC_LO16, breg);
return;
#ifdef LOSING_COMPILER
default:
macro2 (ip);
return;
}
if (mips_noat)
as_warn ("Macro used $at after \".set noat\"");
}
static void
macro2 (ip)
struct mips_cl_insn *ip;
{
register int treg, sreg, dreg, breg;
int tempreg;
int mask;
int icnt = 0;
int used_at;
expressionS expr1;
const char *s;
const char *s2;
const char *fmt;
int likely = 0;
int dbl = 0;
int coproc = 0;
offsetT maxnum;
bfd_reloc_code_real_type r;
char *p;
treg = (ip->insn_opcode >> 16) & 0x1f;
dreg = (ip->insn_opcode >> 11) & 0x1f;
sreg = breg = (ip->insn_opcode >> 21) & 0x1f;
mask = ip->insn_mo->mask;
expr1.X_op = O_constant;
expr1.X_op_symbol = NULL;
expr1.X_add_symbol = NULL;
expr1.X_add_number = 1;
switch (mask)
{
#endif /* LOSING_COMPILER */
case M_DMUL:
dbl = 1;