in instructions, which is where is routine is always called.  */
in instructions, which is where this routine is always called.  */
my_get_expression (ep, str)     expressionS *ep;     char **str;{  char *save_in;  segT seg;    save_in = input_line_pointer;  input_line_pointer = *str;  seg = expression (ep);  if (seg != absolute_section      && seg != text_section      && seg != data_section      && seg != bss_section      && seg != undefined_section)    {      inst.error = "bad_segment";      *str = input_line_pointer;      input_line_pointer = save_in;      return 1;    }  /* Get rid of any bignums now, so that we don't generate an error for which     we can't establish a line number later on.  Big numbers are never valid     in instructions, which is where is routine is always called.  */  if (ep->X_op == O_big      || (ep->X_add_symbol	  && (walk_no_bignums (ep->X_add_symbol)	      || (ep->X_op_symbol		  && walk_no_bignums (ep->X_op_symbol)))))    {      inst.error = "Invalid constant";      *str = input_line_pointer;      input_line_pointer = save_in;      return 1;    }  *str = input_line_pointer;  input_line_pointer = save_in;  return 0;}