]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
*** empty log message ***
authorRichard Stallman <rms@gnu.org>
Fri, 15 May 1992 20:24:03 +0000 (20:24 +0000)
committerRichard Stallman <rms@gnu.org>
Fri, 15 May 1992 20:24:03 +0000 (20:24 +0000)
From-SVN: r991

gcc/config/i860/fx2800.h
gcc/config/i860/i860.c

index d23f2f6b94d976efb699d70d0f8aa634f71e5baa..993bd60908e71c7142b8e60a651f369c842e2079 100644 (file)
@@ -107,26 +107,37 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
   tree decl;                                                           \
   int i;                                                               \
                                                                        \
-  for (i=1;*dtyps[i];i++) {                                            \
-       decl = IDENTIFIER_GLOBAL_VALUE (get_identifier (dtyps[i]));     \
-       if (decl) {                                                     \
+  for (i=1;*dtyps[i];i++)                                              \
+    for (decl = syms; decl; decl = TREE_CHAIN(decl))                   \
+       if ((TREE_CODE (decl) == TYPE_DECL) &&                          \
+           !strcmp(IDENTIFIER_POINTER(DECL_NAME(decl)), dtyps[i])) {   \
                TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i;             \
                typevec[i] = TYPE_DEFINED;                              \
                dbxout_symbol (decl, 0);                                \
+               break;                                                  \
        }                                                               \
-  }                                                                    \
                                                                        \
-  decl = IDENTIFIER_GLOBAL_VALUE (get_identifier ("long int"));                \
-  TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i;                          \
-  typevec[i] = TYPE_DEFINED;                                           \
-  fprintf(asmfile,".stab \"long int:t%d=3\",0,0x%x,0,0\n",i++,N_LSYM); \
-  TREE_ASM_WRITTEN (decl) = 1;                                         \
+  for (decl = syms; decl; decl = TREE_CHAIN(decl))                     \
+    if ((TREE_CODE (decl) == TYPE_DECL) &&                             \
+       !strcmp(IDENTIFIER_POINTER(DECL_NAME(decl)),"long int")) {      \
+      TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i;                      \
+      typevec[i] = TYPE_DEFINED;                                       \
+      fprintf(asmfile,".stab \"long int:t%d=3\",0,0x%x,0,0\n",         \
+               i++,N_LSYM);                                            \
+      TREE_ASM_WRITTEN (decl) = 1;                                     \
+      break;                                                           \
+    }                                                                  \
                                                                        \
-  decl = IDENTIFIER_GLOBAL_VALUE (get_identifier ("long unsigned int"));\
-  TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i;                          \
-  typevec[i] = TYPE_DEFINED;                                           \
-  fprintf(asmfile,".stab \"long unsigned int:t%d=17\",0,0x%x,0,0\n",i++,N_LSYM);\
-  TREE_ASM_WRITTEN (decl) = 1;                                         \
+  for (decl = syms; decl; decl = TREE_CHAIN(decl))                     \
+    if ((TREE_CODE (decl) == TYPE_DECL) && !strcmp(                    \
+       IDENTIFIER_POINTER(DECL_NAME(decl)),"long unsigned int")) {     \
+      TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i;                      \
+      typevec[i] = TYPE_DEFINED;                                       \
+      fprintf(asmfile,".stab \"long unsigned int:t%d=17\",0,0x%x,0,0\n",\
+               i++,N_LSYM);                                            \
+      TREE_ASM_WRITTEN (decl) = 1;                                     \
+      break;                                                           \
+    }                                                                  \
   next_type_number = i; };
 
 /* Alliant dbx doesn't understand split names... */
index 51175c78c000337068f356f92a399f3c7373a9f3..f4ecdb25e47eb43cc8eda0e689c9776cf402eae5 100644 (file)
@@ -669,12 +669,14 @@ singlemove_string (operands)
     }
  if (GET_CODE (operands[1]) == CONST_INT)
    {
+     if (operands[1] == const0_rtx)
+      return "mov %?r0,%0";
      if((INTVAL (operands[1]) & 0xffff0000) == 0)
       return "or %L1,%?r0,%0";
+     if((INTVAL (operands[1]) & 0xffff8000) == 0xffff8000)
+      return "adds %1,%?r0,%0";
      if((INTVAL (operands[1]) & 0x0000ffff) == 0)
       return "orh %H1,%?r0,%0";
-     if (operands[1] == const0_rtx)
-      return "mov %?r0,%0";
    }
   return "mov %1,%0";
 }
@@ -1196,7 +1198,7 @@ output_size_for_block_move (size, reg, align)
 
 #if 1
   cc_status.flags &= ~ CC_KNOW_HI_R31;
-  output_asm_insn ("mov %1,%0", xoperands);
+  output_asm_insn (singlemove_string (xoperands), xoperands);
 #else
   if (GET_CODE (size) == REG)
     output_asm_insn ("sub %2,%1,%0", xoperands);
@@ -1621,7 +1623,7 @@ sfmode_constant_to_ulong (x)
     abort ();
 
 #if TARGET_FLOAT_FORMAT != HOST_FLOAT_FORMAT
-# error IEEE emulation needed
+ error IEEE emulation needed
 #endif
   REAL_VALUE_FROM_CONST_DOUBLE (d, x);
   u2.f = d;