X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-or32.c;h=7234fb837e006f979c255f62206e39a9822046d2;hb=87975d2a60adf249212c1c031abb4dd0dbb800ac;hp=1d98b73f9771158cd8c0104e3ea920955fb36cd1;hpb=541d2ffd365ca39533b78edc9aadd70ad4791163;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-or32.c b/gas/config/tc-or32.c index 1d98b73f97..7234fb837e 100644 --- a/gas/config/tc-or32.c +++ b/gas/config/tc-or32.c @@ -1,5 +1,5 @@ /* Assembly backend for the OpenRISC 1000. - Copyright (C) 2002, 2003, 2005, 2007 + Copyright (C) 2002, 2003, 2005, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Damjan Lampret . Modified bu Johan Rydberg, . @@ -9,7 +9,7 @@ GAS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GAS is distributed in the hope that it will be useful, @@ -262,7 +262,7 @@ static char * parse_operand (char *s, expressionS *operandp, int opt) { char *save = input_line_pointer; - char *new; + char *new_pointer; #if DEBUG printf (" PROCESS NEW OPERAND(%s) == %c (%d)\n", s, opt ? opt : '!', opt); @@ -312,14 +312,15 @@ parse_operand (char *s, expressionS *operandp, int opt) } } - new = input_line_pointer; + new_pointer = input_line_pointer; input_line_pointer = save; #if DEBUG - printf (" %s=parse_operand(%s): operandp->X_op = %u\n", new, s, operandp->X_op); + printf (" %s=parse_operand(%s): operandp->X_op = %u\n", new_pointer, s, + operandp->X_op); #endif - return new; + return new_pointer; } /* Instruction parsing. Takes a string containing the opcode. @@ -332,7 +333,6 @@ machine_ip (char *str) char *s; const char *args; const struct machine_opcode *insn; - char *argsStart; unsigned long opcode; expressionS the_operand; expressionS *operand = &the_operand; @@ -368,7 +368,6 @@ machine_ip (char *str) return; } - argsStart = s; opcode = 0; memset (&the_insn, '\0', sizeof (the_insn)); the_insn.reloc = BFD_RELOC_NONE; @@ -530,69 +529,10 @@ machine_ip (char *str) } } -/* This is identical to the md_atof in m68k.c. I think this is right, - but I'm not sure. - - Turn a string in input_line_pointer into a floating point constant - of type type, and store the appropriate bytes in *litP. The number - of LITTLENUMS emitted is stored in *sizeP . An error message is - returned, or NULL on OK. */ - -/* Equal to MAX_PRECISION in atof-ieee.c. */ -#define MAX_LITTLENUMS 6 - char * md_atof (int type, char * litP, int * sizeP) { - int prec; - LITTLENUM_TYPE words[MAX_LITTLENUMS]; - LITTLENUM_TYPE *wordP; - char *t; - - switch (type) - { - case 'f': - case 'F': - case 's': - case 'S': - prec = 2; - break; - - case 'd': - case 'D': - case 'r': - case 'R': - prec = 4; - break; - - case 'x': - case 'X': - prec = 6; - break; - - case 'p': - case 'P': - prec = 6; - break; - - default: - *sizeP = 0; - return _("Bad call to MD_ATOF()"); - } - - t = atof_ieee (input_line_pointer, type, words); - if (t) - input_line_pointer = t; - - *sizeP = prec * sizeof (LITTLENUM_TYPE); - - for (wordP = words; prec--;) - { - md_number_to_chars (litP, (valueT) (*wordP++), sizeof (LITTLENUM_TYPE)); - litP += sizeof (LITTLENUM_TYPE); - } - - return NULL; + return ieee_md_atof (type, litP, sizeP, TRUE); } /* Write out big-endian. */