as_bad ("macro requires $at register while noat in effect");
as_bad (_("macro requires $at register while noat in effect"));
emit_division (tok, ntok, symname)     const expressionS *tok;     int ntok;     const PTR symname;{  /* DIVISION and MODULUS. Yech.   * Convert   *    OP x,y,result   * to   *    lda pv,__OP   *    mov x,t10   *    mov y,t11   *    jsr t9,(pv),__OP   *    mov t12,result   *   * with appropriate optimizations if t10,t11,t12 are the registers   * specified by the compiler.   */  int xr, yr, rr;  symbolS *sym;  expressionS newtok[3];  xr = regno (tok[0].X_add_number);  yr = regno (tok[1].X_add_number);  if (ntok < 3)    rr = xr;  else    rr = regno (tok[2].X_add_number);  sym = symbol_find_or_make ((const char *)symname);  /* Move the operands into the right place */  if (yr == AXP_REG_T10 && xr == AXP_REG_T11)    {      /* They are in exactly the wrong order -- swap through AT */      if (alpha_noat_on)	as_bad ("macro requires $at register while noat in effect");      set_tok_reg (newtok[0], AXP_REG_T10);      set_tok_reg (newtok[1], AXP_REG_AT);      assemble_tokens ("mov", newtok, 2, 1);      set_tok_reg (newtok[0], AXP_REG_T11);      set_tok_reg (newtok[1], AXP_REG_T10);      assemble_tokens ("mov", newtok, 2, 1);      set_tok_reg (newtok[0], AXP_REG_AT);      set_tok_reg (newtok[1], AXP_REG_T11);      assemble_tokens ("mov", newtok, 2, 1);    }  else    {      if (yr == AXP_REG_T10)	{	  set_tok_reg (newtok[0], AXP_REG_T10);	  set_tok_reg (newtok[1], AXP_REG_T11);	  assemble_tokens ("mov", newtok, 2, 1);	}      if (xr != AXP_REG_T10)	{	  set_tok_reg (newtok[0], xr);	  set_tok_reg (newtok[1], AXP_REG_T10);          assemble_tokens ("mov", newtok, 2, 1);	}      if (yr != AXP_REG_T10 && yr != AXP_REG_T11)	{	  set_tok_reg (newtok[0], yr);	  set_tok_reg (newtok[1], AXP_REG_T11);	  assemble_tokens ("mov", newtok, 2, 1);	}    }  /* Call the division routine */  set_tok_reg (newtok[0], AXP_REG_T9);  set_tok_sym (newtok[1], sym, 0);  assemble_tokens ("jsr", newtok, 2, 1);  /* Reload the GP register */#ifdef OBJ_AOUTFIXME#endif#if defined(OBJ_ECOFF) || defined(OBJ_ELF)  set_tok_reg (newtok[0], alpha_gp_register);  set_tok_const (newtok[1], 0);  set_tok_preg (newtok[2], AXP_REG_T9);  assemble_tokens ("ldgp", newtok, 3, 1);#endif  /* Move the result to the right place */  if (rr != AXP_REG_T12)    {      set_tok_reg (newtok[0], AXP_REG_T12);      set_tok_reg (newtok[1], rr);      assemble_tokens ("mov", newtok, 2, 1);    }}