diff options
Diffstat (limited to 'gcc/config/fr30')
-rw-r--r-- | gcc/config/fr30/fr30.c | 42 | ||||
-rw-r--r-- | gcc/config/fr30/fr30.h | 35 | ||||
-rw-r--r-- | gcc/config/fr30/fr30.md | 4 |
3 files changed, 30 insertions, 51 deletions
diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c index f217534a308..e163f926614 100644 --- a/gcc/config/fr30/fr30.c +++ b/gcc/config/fr30/fr30.c @@ -2,24 +2,23 @@ Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Cygnus Solutions. -This file is part of GNU CC. + This file is part of GNU CC. -GNU CC 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) -any later version. + GNU CC 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) + any later version. -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + GNU CC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with GNU CC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ -/*}}}*/ /*{{{ Includes */ #include "config.h" @@ -30,11 +29,11 @@ Boston, MA 02111-1307, USA. */ #include "real.h" #include "insn-config.h" #include "conditions.h" -#include "output.h" #include "insn-attr.h" #include "flags.h" #include "recog.h" #include "tree.h" +#include "output.h" #include "expr.h" #include "obstack.h" #include "except.h" @@ -90,7 +89,7 @@ struct rtx_def * fr30_compare_op1; SP ->| | / +-----------------------+ - Note, AP is a fake hard register. It will be eliminated in favour of + Note, AP is a fake hard register. It will be eliminated in favor of SP or FP as appropriate. Note, Some or all of the stack sections above may be omitted if they @@ -554,10 +553,11 @@ fr30_print_operand (file, x, code) output_operand_lossage ("fr30_print_operand: invalid %%F code"); else { - REAL_VALUE_TYPE d; + char str[30]; - REAL_VALUE_FROM_CONST_DOUBLE (d, x); - fprintf (file, "%.8f", d); + real_to_decimal (str, CONST_DOUBLE_REAL_VALUE (x), + sizeof (str), 0, 1); + fputs (str, file); } return; @@ -1098,3 +1098,7 @@ fr30_move_double (operands) return val; } +/*}}}*/ +/* Local Variables: */ +/* folded-file: t */ +/* End: */ diff --git a/gcc/config/fr30/fr30.h b/gcc/config/fr30/fr30.h index a2950c8ec37..57b24960679 100644 --- a/gcc/config/fr30/fr30.h +++ b/gcc/config/fr30/fr30.h @@ -122,8 +122,6 @@ extern int target_flags; /* Defined in svr4.h. */ #define PCC_BITFIELD_TYPE_MATTERS 1 -#define TARGET_FLOAT_FORMAT IEEE_FLOAT_FORMAT - /*}}}*/ /*{{{ Layout of Source Language Data Types. */ @@ -586,7 +584,7 @@ enum reg_class {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM} \ } -/* A C expression that returns non-zero if the compiler is allowed to try to +/* A C expression that returns nonzero if the compiler is allowed to try to replace register number FROM with register number TO. This macro need only be defined if `ELIMINABLE_REGS' is defined, and will usually be the constant 1, since most of the cases preventing register elimination are @@ -695,7 +693,7 @@ enum reg_class You may use the macro `MUST_PASS_IN_STACK (MODE, TYPE)' in the definition of this macro to determine if this argument is of a type that must be passed in the stack. If `REG_PARM_STACK_SPACE' is not defined and `FUNCTION_ARG' - returns non-zero for such an argument, the compiler will abort. If + returns nonzero for such an argument, the compiler will abort. If `REG_PARM_STACK_SPACE' is defined, the argument will be computed in the stack and then loaded into a register. */ @@ -992,7 +990,7 @@ do \ * indexed addressing using small signed offsets from the frame pointer - * register plus register addresing using R13 as the base register. + * register plus register addressing using R13 as the base register. At the moment we only support the first two of these special cases. */ @@ -1168,29 +1166,6 @@ do \ /* Globalizing directive for a label. */ #define GLOBAL_ASM_OP "\t.globl " -/* A C expression to assign to OUTVAR (which is a variable of type `char *') a - newly allocated string made from the string NAME and the number NUMBER, with - some suitable punctuation added. Use `alloca' to get space for the string. - - The string will be used as an argument to `ASM_OUTPUT_LABELREF' to produce - an assembler label for an internal static variable whose name is NAME. - Therefore, the string must be such as to result in valid assembler code. - The argument NUMBER is different each time this macro is executed; it - prevents conflicts between similarly-named internal static variables in - different scopes. - - Ideally this string should not be a valid C identifier, to prevent any - conflict with the user's own symbols. Most assemblers allow periods or - percent signs in assembler symbols; putting at least one of these between - the name and the number will suffice. */ -#define ASM_FORMAT_PRIVATE_NAME(OUTVAR, NAME, NUMBER) \ - do \ - { \ - (OUTVAR) = (char *) alloca (strlen ((NAME)) + 12); \ - sprintf ((OUTVAR), "%s.%ld", (NAME), (long)(NUMBER)); \ - } \ - while (0) - /*}}}*/ /*{{{ Output of Assembler Instructions. */ @@ -1245,7 +1220,7 @@ do \ The definition should be a C statement to output to the stdio stream STREAM an assembler pseudo-instruction to generate a difference between two labels. VALUE and REL are the numbers of two internal labels. The definitions of - these labels are output using `ASM_OUTPUT_INTERNAL_LABEL', and they must be + these labels are output using `(*targetm.asm_out.internal_label)', and they must be printed in the same way here. For example, fprintf (STREAM, "\t.word L%d-L%d\n", VALUE, REL) */ @@ -1258,7 +1233,7 @@ fprintf (STREAM, "\t.word .L%d-.L%d\n", VALUE, REL) The definition should be a C statement to output to the stdio stream STREAM an assembler pseudo-instruction to generate a reference to a label. VALUE is the number of an internal label whose definition is output using - `ASM_OUTPUT_INTERNAL_LABEL'. For example, + `(*targetm.asm_out.internal_label)'. For example, fprintf (STREAM, "\t.word L%d\n", VALUE) */ #define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \ diff --git a/gcc/config/fr30/fr30.md b/gcc/config/fr30/fr30.md index 8557ce898d2..b78e99d96a1 100644 --- a/gcc/config/fr30/fr30.md +++ b/gcc/config/fr30/fr30.md @@ -521,7 +521,7 @@ ;;{{{ Floating Point Moves ;; Note - Patterns for SF mode moves are compulsory, but -;; patterns for DF are optional, as GCC can synthesise them. +;; patterns for DF are optional, as GCC can synthesize them. (define_expand "movsf" [(set (match_operand:SF 0 "general_operand" "") @@ -676,7 +676,7 @@ ) ;; Do not allow an eliminable register in the source register. It -;; might be eliminated in favour of the stack pointer, probably +;; might be eliminated in favor of the stack pointer, probably ;; increasing the offset, and so rendering the instruction illegal. (define_insn "addsi_small_int" [(set (match_operand:SI 0 "register_operand" "=r,r") |